403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/__pycache__/test_buffer.cpython-313.pyc
�

��ik����SSKrSSKrSSKJr SSKJr SSKrSSKJrJ	r	 SSK
JrJrJ
r
 SSKrSSKrSSKrSSKrSSKrSSKJr SSKJr SSKJr SS	K7 SSKrSSKr\R:"5\l\R>"5 SS
K Jr! SSS5 SSS5 SSK"r"Sr#0SS_S
S_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_r$\!(a\$S	\$S	\(a\RJ"SS5 S\$S'S\$S'SS S!S S"S#S$S%S$S%S&S'S(S&S)S*-*S)S*-4S+.r'S,r(\$\$\'\'\'\'S-.r)\(a\)S.Hr*\("\*5\)S.\*'M \$RW5r,\$RW5r-\$Hr.\.S/;dM\-\.	M \$RW5r/\$Hr.\.S0;dM\/\.	M \,\)S1'\,\)S2'\-\)S3'\/\)S'\/\)S4'Sr0S)r1/S-Q/S5Q4S3/S6/4S6/S6/4S2S1/S6/4S4S/S6/4S7.r2S8r3S9r4S:r5S;r6SsS<jr7S
S=jr8S
S>jr9S?r:S@r;\)S.Vs/sHn\:"U5(aMUPM snr<SAr=SBr>SCr?SDr@SErASFrBSGrCSHrDSIrESJrFSKrGSLrHSMrISNrJSOrKSPrLSQrMSRrNSSrOSTrPSUrQSVrRStSXjrSSYrTSZrUSuS[jrVS\rWSvS]jrXS^rYSwS_jrZS`r[Sar\Sbr]SxScjr^SxSdjr_SySejr`SwSfjraSgrbShrcSWrdSire\#(aSircSjrdSkre\_r\\`r]\ar\R�"\Sl5\R�"\Sm5"SnSo\R�555rh"SpSq\R�5ri\jSr:Xa\R�"5 gg!\a SrGN�f=f!\a SrGN�f=f!\a SrGNf=f!,(df   GN�=f!,(df   GN�=f!\a Sr!GN�f=f!\a Sr"GN�f=f!\RLa GN�f=fs snf)z�N)�support)�	os_helper)�permutations�product)�	randrange�sample�choice)�Decimal)�Fraction)�warnings_helper)�*)�ndarrayT�?�c�b�B�h�H�i�I�l�L�n�N�e�f�d�P�Q������q�r��r�)i�����)i�����)ri)���)rl�l������r��i��i���)rrrrrrrrrrr!rrrrc�8�US:XaSnU$US:XaSnU$US:XaSnU$US:XaSnU$US	:Xa
S
S-*S
S-4nU$SH!n[R"US
U-S
-
5  O WS
-(aS
U-*S
U-4OS
S
U-4nU$![Ra MZf=f)zReturn range of a native type.rr$rr"rr.rr*rr/r0)
r&��@�?� �����r)�struct�pack�error)�fmt�lh�exps   �%C:\Python313\\Lib\test\test_buffer.py�native_type_rangerBbs���
�c�z�
��"�I�!

���
���I�

���
���I�

���
���I�

����4��j�!�T�'�
"���I�<�C�
����C�!�S�&�!��,��<�%(�!�G��3��i��C��
 �!�Q��V���
�I���<�<�
��
�s�B�B�B)��@�<�>�=�!rD�
bBhHiIlLfd�Bbc�m�@m�a�@b)rC�1�2�3rC)r�array�numpy�
memoryview�bytefmtc��[[UU6nUS:Xa[U/5nUS:XaUS:XaSnUS:Xa[U5nUS;a/[R
"X5n[R"X5SnU$)zPReturn random item for a type specified by a mode and a single
format character.rrS��r�efdr)r�fmtdict�bytes�boolr;r<�unpack)�mode�char�obj�xs    rA�
randrange_fmtrb�sx��	�7�4�=��&�'�A��s�{��1�#�J���'�>�a�7�l��A��s�{���G���u�}��K�K�� ���M�M�$�"�1�%���H�c��URS5up#/nUHnUR[X%U55 M  [U5S:XaUS$[	U5$)zReturn single random item.�#r/r)�split�appendrb�len�tuple)r>r`r^�charsrars      rA�gen_itemrk�sP���)�)�C�.�K�D�
�A�
��	����t��,�-���q�6�Q�;�1�Q�4�,�E�!�H�,rcc�r�US:Xa[X5$S/U-n[U5Hn[X5X4'M U$)z,Return a list of random items (or a scalar).r)rk�range)rr>r`�lstrs     rA�	gen_itemsro�s>���A�v���!�!��#��'�C�
�1�X���#�#�����Jrcc�z�[[U[5nUS-nURS5n[	SS5n[U5HWn[[
[U55n[[U[5nX7[U(aUOS5--
nXHU--
nMY [XU5n	[X15n
XIU
4$)Nre�ambr#�
r/)r	�cap�MODE�striprrmrirZ�MULT�intrork)rr`r^�xfmtr>�nmemb�_r_�
multiplier�items�items           rA�struct_itemsr~�s����#�c�(�4�.�!�D��#�:�D�
�*�*�U�
�C��a���E�
�5�\���e�G�D�M�*�+���C��H�T�N�+�
���*�J�!�<�<�=���T�!�"��	�

�a�s�#�E��D��D��t��rcc�F�Uc[[U[5nUc[[[U55n[[U[
5nUS-U[
U(aUOS5--n[XU5n[XQ5nURS5U-U-nXVU4$)z"Return random format, items, item.rer/rq)
r	rsrtrirZrvrwrorkru)rr`r^r_r{r>r|r}s        rA�	randitemsr��s����|��c�#�h�t�n�%���|��e�G�D�M�*�+����C����'�J�
��*�t�c�
�*��B�B�
B�C��a�c�"�E��C��D�
�*�*�U�
�j�
(�4�
/�C��t��rcc#�v# �[U[H!n[UHn[XX#5v� M M# g7f)z1Iterate through supported mode/char combinations.N)rsrtrZr�)rr`r^r_s    rA�	iter_moder��s2����C������D�M�D��A�D�/�/�"��s�79c#�`# �[X5HnUv� M	 US:wag[X5v� g7f)zpYield (format, items, item) for all possible modes and format
characters plus one random compound format string.rN)r�r~)�nitems�testobj�ts   rA�iter_formatr��s1����v�
'����(��)���
�v�
'�'�s�,.c�<�SU;=(d SU;=(d SU;$)Nrrr�)r>s rA�is_byte_formatr��s���#�:�1����1�s�c�z�1rcc��[U5nUS:H=(d US:H=(a USS:H=(a XS-
[;$)zformat suitable for memoryviewr/r#rrD)rh�
MEMORYVIEW)r>ras  rA�is_memoryview_formatr��s@���C��A�
�!�V�
1��Q��0�3�q�6�S�=�
#��!��H�
�"�$rcc�,�[U[5(+$)z9Tuple items (representing structs) are regarded as atoms.��
isinstance�list�rns rA�atompr�s���#�t�$�$�$rcc�"�[U[5$�Nr�r�s rA�listpr�s���c�4� � rcc�P�[U5S:XagUSnUSSHnX-nM	 U$)zProduct of list elements.rr/N)rh)rnra�vs   rA�prodr�s5��
�3�x�1�}���A��A�
���W��	�����Hrcc��US:XagUS:Xa<[USS5U/-n[US-
SS5HnXE==XES--ss'M U$U/[USS5-n[SU5HnXE==XES-
-ss'M U$)zHCalculate strides of a contiguous array. Layout is 'C' or
'F' (Fortran).rr��Cr/Nr#���)r�rm)�ndim�shape�itemsize�layout�stridesrs      rA�strides_from_shaper�s����q�y��
��}��u�Q�R�y�/�X�J�.���t�A�v�r�2�&�A��J�'�A�#�,�&�J�'��N��*�t�E�#�2�J�/�/���q�$��A��J�'�A�#�,�&�J� ��Nrcc��[U5(aU$[U5S:XaUS$S/US-nUS(a[U5US-OSn[US5HnXC-n[XXS-USS5X$'M U$)zfConvert flat item list to the nested list representation of a
multidimensional C array with shape 's'.rr/N)r�rhrm�_ca)r|�srn�strider�starts      rAr�r�s���
�U�|�|���
�1�v��{��Q�x���#��!��*�C�#$�Q�4�S��Z�1�Q�4�
�Q�F�
�1�Q�4�[������U���.��!�"��6�����Jrcc���[U5(aU$[U5S:XaUS$S/US-nUSn[US5Hn[XSU2USS5X$'M U$)zlConvert flat item list to the nested list representation of a
multidimensional Fortran array with shape 's'.rNr/)r�rhrm�_fa)r|r�rnr�rs     rAr�r�-sr��
�U�|�|���
�1�v��{��Q�x���#��!��*�C�
�q�T�F�
�1�Q�4�[���U�9�f�9�%�q���u�-�����Jrcc��[U5(a)SU;a#[U5[U5:wa[S5e[	X5$�Nrzprod(shape) != len(items))r�r�rh�
ValueErrorr��r|r�s  rA�carrayr�:�7���U�|�|�A��J�4��;�#�e�*�+D��4�5�5��u��rcc��[U5(a)SU;a#[U5[U5:wa[S5e[	X5$r�)r�r�rhr�r�r�s  rA�farrayr�?r�rcc�R�UVs/sHn[U5PM nn[U6$s snf)z(Generate all possible tuples of indices.)rmr)r�r��	iterabless   rA�indicesr�Ds*��#(�)�5�a��q��5�I�)��I����*s�$c�F�Sn[U5HnX2UX--
nM U$)zAConvert multi-dimensional index to the position in the flat list.r�rm)r��indr��retrs     rA�getindexr�Is-��
�C�
�4�[���q�z�C�F�"�"����Jrcc��U(dU$[U5n[X!SS5n[X!SSS2SS5nS/[U5-n[U5H'n[X&U5n[X&SSS2U5nXXX'M) U$)z~Transpose flat item list that is regarded as a multi-dimensional
matrix defined by shape: dest...[k][j][i] = src[i][j][k]...  r/r�Nr�r)rhr�r�r�)	�srcr�r��sstrides�dstrides�destr��fr�tos	         rA�	transposer�Ps�����
��u�:�D�!�$�q�#�6�H�!�$�d��d��Q��<�H�
�3��S��>�D��u�~��
�d��
*��
�d��"��I�x�
0���7�����Krcc�r�U/:XaU$[U5(aU/$[US5[USS5-$)zflatten listrr/N�r��_flattenr�s rAr�r�_s=��
�b�y��
��S�z�z��u���C��F��h�s�1�2�w�/�/�/rcc�<�[U5(aU$[U5$)zflatten list or return scalarr�r�s rA�flattenr�gs���S�z�z��
��C�=�rcc�n�[U5(a/$[XS5/[USUSS5-$)zFGet the shape of lst after slicing: slices is a list of slice
objects.rr/N)r�rh�slice_shape)rn�slicess  rAr�r�ms<��
�S�z�z��	���1�I��� �;�s�1�v�v�a�b�z�#B�B�Brcc	�x�[U5(aU$XSVs/sHn[X!SS5PM sn$s snf)z=Multi-dimensional slicing: slices is a list of slice objects.rr/N)r��
multislice)rnr��sublsts   rAr�r�ts9���S�z�z��
�9<�A�Y��H��v�J�v�a�b�z�*��H�H��Hs�7c��[U5(aU$[XSXS5VVs/sHupE[XEUSSUSS5PM nnnXUS'U$s snnf)a�Multi-dimensional slice assignment: llst and rlst are the operands,
lslices and rslices are lists of slice objects. llst and rlst must
have the same structure.

For a two-dimensional example, this is not implemented in Python:

  llst[0:3:2, 0:3:2] = rlst[1:3:1, 1:3:1]

Instead we write:

  lslices = [slice(0,3,2), slice(0,3,2)]
  rslices = [slice(1,3,1), slice(1,3,1)]
  multislice_assign(llst, rlst, lslices, rslices)
rr/N)r��zip�m_assign)�llst�rlst�lslices�rslicesr�rs      rAr�r�zsw��
�T�{�{����D���,�d�1�:�.>�?�A�?���
�Q�7�1�2�;�����4�?�	�A�������K��As�Ac���[X5n[X5n[U5[U5:wag[[U55HnXFXV:wa gXFS:XdM g g)z9Compare the structure of llst[lslices] and rlst[rslices].r�r)r�rhrm)r�r�r�r��lshape�rshapers       rA�
cmp_structurer��s\��
��
'�F�
��
'�F��F��s�6�{�"��
�3�v�;�
���9��	�!���9��>��	 �

rcc�P�[XX#5S:a[S5e[XX#5$)z:Return llst after assigning: llst[lslices] = rlst[rslices]rz+lvalue and rvalue have different structures)r�r�r�)r�r�r�r�s    rA�multislice_assignr��s*���T��2�Q�6��F�G�G��D��1�1rcc�|^^^�UT-(agUS:d	UT-U:�ag[U4SjT55(agUS::a!US:H=(a T(+=(a T(+$ST;ag[UU4Sj[U555n[UU4Sj[U555nSXV-:*=(a
 XW-T-U:*$)z�Verify that the parameters represent a valid array within
the bounds of the allocated memory:
    char *mem: start of the physical memory block
    memlen: length of the physical memory block
    offset: (char *)buf - mem
Frc3�,># �UH	oT-v� M g7fr�r�)�.0r�r�s  �rA�	<genexpr>�#verify_structure.<locals>.<genexpr>�s����
)��A�x�<��s�Tc3�V># �UHnTUS::dMTUTUS-
-v� M  g7f�rr/Nr��r��jr�r�s  ��rAr�r��s4����#��1��!�*��/�'�w�q�z�5��8�A�:�&����
)�)c3�V># �UHnTUS:�dMTUTUS-
-v� M  g7fr�r�r�s  ��rAr�r��s4����"��1��!�*�q�.�'�w�q�z�5��8�A�:�&��r�)�any�sumrm)�memlenr�r�r�r��offset�imin�imaxs ` ``   rA�verify_structurer��s��������
��z�V�H�_�v�-��
�
)��
)�)�)���q�y��q�y�6��Y�6�w�;�6��E�z���#��d��#�#�D��"��d��"�"�D�
����>���H� 4�� >�>rcc� �UHnXnM	 U$r�r�)rnr�rs   rA�get_itemr��s��
���f����Jrcc�R�Uup#pEpgUn[U5Hn	X�U	X	--
nM U$)z-Location of an item in the underlying memory.r�)
r�r�r�r�r�r�r�r��prs
          rA�memory_indexr��s9��56�2�F�d�7��A�
�4�[��	�Q�Z��
�
"�"����Hrcc�|�Uupp4pVSU-n[U5H"n[X�5n	SU	-n
Xz-(a gXz-nM$ g)z�The structure 't' is overlapping if at least one memory location
is visited twice while iterating through all possible tuples of
indices.r/TF)r�r�)r�r�r�r�r�r�r��visitedr�r�bits           rA�is_overlappingr��sN��67�2�F�d�7���i�G��u�~���� ����d���=������rc�c�^^�T(d�[US-5nUS:Xa9U(aXUSSS4$[SS5nX`-n[S5S:XaU*OUnXpUSSU4$Sn	[S5n
U
S:�a
U(aSn	OU
S:�aSn	S/U-m[U5Hn[X�S-5TU'M O[T5nS	n[S5n
U
S:�aU
S-(aS
OSn
S/U-mU[U*US-5-TUS-
'U
(dTUS-
S:XaUTUS-
'[US-
SS5H`nUTUS-(aTUS-OS-nU
(aU[U*US-5-TU'M<S
[S5U-[SUS-5-TU'Mb S=p�ST;a>[UU4Sj[U555n[UU4Sj[U555nX�-
nU(aU*U-nX�S-U--nO U*U-U-n[S5S:XaU*U-
OUnXpUTTU4$)z�Return random structure:
    (memlen, itemsize, ndim, shape, strides, offset)
If 'valid' is true, the returned structure is valid, otherwise invalid.
If 'shape' is given, use that instead of creating a random shape.
r/rr��r#�d�_�Zr�TFr��r/r�c3�V># �UHnTUS::dMTUTUS-
-v� M  g7fr�r�r�s  ��rAr��!rand_structure.<locals>.<genexpr>!s4����'�K�q��a�j�A�o�+�7�1�:�u�Q�x��z�*�K�r�c3�V># �UHnTUS:�dMTUTUS-
-v� M  g7fr�r�r�s  ��rAr�r�#s4����&�K�q��a�j�1�n�+�7�1�:�u�Q�x��z�*�K�r�)rrmrhr�)r��valid�maxdim�maxshaper�r�r�r�r��minshaperr�	maxstride�zero_strider�r�r�s    `           @rA�rand_structurer�sX��������"���A�I���4��R��:�:�"�1�d�+���*��&/��l�a�&7�(��V����r�2�v�=�=����c�N����7�u��H�
�"�W��H���d�
���t��A� ��A�:�6�E�!�H���5�z���I��#��A��r�'�a�!�e�$��K��c�D�j�G���I�:�y��{�!C�C�G�D��F�O��7�4��6�?�a�/�"���Q���
�4��6�2�r�
"���5��1��:�U�1�Q�3�Z�1�4�	��!�I�y�j�)�A�+�$F�F�G�A�J� ��1��.�"�#�%.�q�)�A�+�%>�?�G�A�J�#��O�D���:��'�E�$�K�'�'���&�E�$�K�&�&���[�F�����!����6�X�-�-���%�$�,�(�*��#,�Q�<�1�#4�$��x��&���T�5�'�6�9�9rcc���X-
n[US-5nU(aX-
U-OSn[SUS-5nX0U--n[X6U5n[Xq5u  p�X�:wa[eU$)z=Create a random slice of len slicelen that fits into listlen.r/)r�slice�
slice_indices�RuntimeError)
�slicelen�listlen�maxstartr��maxstep�step�stopr�rz�controls
          rA�randslice_from_slicelenr/sr���!�H��h�q�j�!�E�/7�w��8�+�Q�G��Q���	�"�D��d�?�"�D�
�e�4� �A�$�Q�0��A�q�!������Hrcc���S/U-nS/U-n[U5H8nXnUS:�a[SUS-5OSn[Xe5X$'[Xe5X4'M: [U5[U54$)zqCreate two sets of slices for an array x with shape 'shape'
such that shapeof(x[lslices]) == shapeof(x[rslices]).rr/)rmrrri)r�r�r�r�rrrs       rA�randslice_from_shaper<st���c�D�j�G��c�D�j�G�
�4�[���H��()�A��9�Q��!��$�1��,�X�9��
�,�X�9��
�	�
��>�5��>�)�)rcc���[SUS-5nSn[S5nUS:�aSnOUS:�aSn[S5S:�aSOS	nS/U-nS/U-nS/U-nS/U-n	[U5H�n[X1S-5n
[X1S-5nX�:aX�p�U(a[[U
*U
S-5n[U
*U
S-5n
S
[S5[SU
S-5-n[X�U5n[X�5u  nnO#U
S:�a[SU
S-5OSn[	UU
5n[	UU5n[S5S:XaX�sXt'Xd'UUsX�'X�'M�X�sXt'Xd'UUsX�'X�'M� Xg[U5[U	54$)z�Create (lshape, rshape, tuple(lslices), tuple(rslices)) such that
shapeof(x[lslices]) == shapeof(y[rslices]), where x is an array
with shape 'lshape' and y is an array with shape 'rshape'.r/r#r�r�rr��PTFr�)rrmrr	rri)rrr�rr�
all_randomr�r�r�r��small�bigr�rr�s_smallrzr�s_bigs                   rA�rand_aligned_slicesrHs����Q��q��!�D��H��#��A��B�w���	
�b����"�3��2�-��5�J��S��X�F���D��v��c�$�h�G�1�#�d�(��
�4�[���(�Q�J�/����1�*�-���;�����u�f�e�A�g�.�E��e�V�U�1�W�-�D��)�A�,�'�)�A�u�Q�w�*?�?�D��E��.�G� -�g� =��A�q�!�X�05��	�y��E�!�G�,�q�H�-�h��>�G�(��#�6���Q�<�1��#&� �F�I�v�y�%*�G�"�G�J��
�#(� �F�I�v�y�%,�e�"�G�J��
�1�4�5��>�5��>�9�9rcc�6�Uup#   n[X#-SU-S5$)zFReturn a list of random items for structure 't' with format
'fmtchar'.rerS)ro)r>r�r�r�rzs     rA�randitems_from_structurerss*��$%� �F�a��A�q��V�%�s�3�w��8�8rcc	�4�UupEpgp�[XX�U	[U-S9$)z:Return ndarray from the tuple returned by rand_structure()�r�r��formatr��flags)r�ND_WRITABLE)
r|r>r�r"r�r�r�r�r�r�s
          rA�ndarray_from_structurer$ys)��56�2�F�d�7��5�w� ��E�(9�;�;rcc��Uup4pVpx[U5n	[U5Hup�[R"XX�-U5 M! [	X�UXS9$)z>Return numpy_array from the tuple returned by rand_structure())�bufferr�r��dtyper�)�	bytearray�	enumerater;�	pack_into�numpy_array)r|r>r�r�r�r�r�r�r��bufr�r�s            rA�numpy_array_from_structurer-sQ��56�2�F�d�7�
�F�
�C��%� �������1�:�q�1�!��c�� �1�1rcc���URnU(a[U5U-U:waSU4$O:U/:XaURS:XdX$:waSU4$O[XB5upVU/nUS:waSU4$UR	5n[S[
U5U5Vs/sH	o�X�U-PM n	n/n
U	H8n[R"X5SnX�:waSU4s $U
RU5 M: U/:waX�4$U
SU4$s snf)a�Interpret the raw memory of 'exporter' as a list of items with
size 'itemsize'. If shape=None, the new structure is assumed to
be 1-D with n * itemsize = bytelen. If shape is given, the usual
constraint for contiguous arrays prod(shape) * itemsize = bytelen
applies. On success, return (items, shape). If the constraints
cannot be met, return (None, None). If a chunk of bytes is interpreted
as NaN as a result of float conversion, return ('nan', None).Nr�nan)
�nbytesr�r��divmod�tobytesrmrhr;r]rg)
�exporterr>r�r��bytelenrr��memr�	byteitemsr|r�r}s
             rA�
cast_itemsr7�s���o�o�G����;��!�W�,���;��-�	�"���=�=�A���!4���;��"5��g�(��������6���;��
�
�
�
�C�,1�!�S��X�x�,H�I�,H�q�Q��z�"�,H�I�I��E�
���}�}�S�$�Q�'���<��%�<��
���T��	�#�b�[�E�>�?�u�Q�x��.?�?��Js�
C/c#�j# �[S5HnU/v� M
 [SS5n[S5S:�aSOSn[U5Vs/sHn[US5PM snv� [SS5n[S5S:�aSOSn[U5Vs/sHn[US5PM snv� g	s snfs snf7f)
z Generate shapes to test casting.r5��r�rr/r#r�N)rmr)rr�rrzs    rA�
gencastshapesr;�s����
�2�Y���c�	���Q��?�D��c�N�R�'�q�Q�H�+0��;�
7�;�a�9�X�q�!�;�
7�7��Q��?�D��c�N�R�'�q�Q�H�+0��;�
7�;�a�9�X�q�!�;�
7�7��8��8�s�AB3�B)�1B3�
B.�#B3c	�p�[[U*US-5[U*US-5[U*US-55$)z4Generate all possible slices for a single dimension.r/)rrm)rs rA�	genslicesr=�s5���5�!��Q�q�S�>�5�!��Q�q�S�>�5�!��Q�q�S�>�B�Brcc�h�[U5Vs/sHn[X5PM nn[U6$s snf)z/Generate all possible slice tuples for 'shape'.)rmr=r)r�r�rr�s    rA�genslices_ndimr?�s1��.3�D�k�:�k���5�8�$�k�I�:��I����;s�/c�V�U(dUS:XaSOSn[X S-5n[X05$)z�Generate random slice for a single dimension of length n.
If zero=True, the slices may be empty, otherwise they will
be non-empty.rr/)rr)r�allow_empty�minlenrs    rA�rslicerC�s,����a��Q�Q�F���1��%�H�"�8�/�/rcc#�J# �[S5Hn[X5v� M g7f)z.Generate random slices for a single dimension.r�N)rmrC)rrArzs   rAr�r��s���
�1�X���Q�$�$��s�!#c#�^# �[U5H#n[U4Sj[U555v� M% [U5H#n[U4Sj[U555v� M% [S[U555v� g7f)z)Generate random slice tuples for 'shape'.c3�@># �UHn[TU5v� M g7fr��rC�r�rr�s  �rAr��rslices_ndim.<locals>.<genexpr>�s����:�k��F�5��8�$�$�k�s�c3�>># �UHn[TUSS9v� M g7f)T)rANrGrHs  �rAr�rI�s����L��1�F�5��8��6��s�c3�<# �UHn[SSS5v� M g7fr�)r)r�rzs  rAr�rI�s���2�k���a��!���k�s�N)rmri)r�r��
iterationsrzs `  rA�rslices_ndimrM�si�����:�
���:�e�D�k�:�:�:���:�
���L��d��L�L�L���2�e�D�k�2�
2�2�s�BBc#�n# �[U5nUc[U5OUn[[X!55v� g7fr�)rirhr)�iterabler��pools   rA�rpermutationrQ�s,�����?�D��Y��D�	�A�A�
��t��
 � �s�35c���UR5n[	U[
5(aURnURnOSnSn[SU<SUR<SUR<SUR<SU<SUR<SUR<S	U<S
35 [RR!5 g![[4a UR5nN�f=f)zPrint ndarray for debugging.�unknownzndarray(z, shape=z
, strides=z
, suboffsets=z	, offset=z
, format='z', itemsize=z, flags=�)N)�tolist�	TypeError�NotImplementedErrorr2r�rr�r"�printr�r��
suboffsetsr!r��sys�stdout�flush)�ndrar�r"s    rA�
ndarray_printr^�s�����I�I�K���"�g���������������	��b�h�h��
�
�B�M�M�6�
�9�9�b�k�k�5�*�+��J�J�����
�*�+���J�J�L���s�C� C$�#C$r�rr�r9z%struct module required for this test.z%ndarray object required for this testc���\rSrSrSrSSS.SjrSXSjr\R"S5S5r	S	r
S
rSrSr
S
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr S r!S!r"S"r#S#r$S$r%S%r&S&r'S'r(S(r)S)r*S*r+S+r,\RZr-S,r.S-r/S.r0S/r1S0r2\R"S5S15r3S2r4S3r5S4r6\7RpS55r9S6r:S7r;S8r<S9r=S:r>\?R�"\AS;9S<5rBS=rCS>rDS?rES@rFSArGSBrHSCrISDrJSErKSFrLSGrMSHrNSIrOSJrPSKrQSLrRSMrSSNrTSOrUSPrVSQrWSRrXSSrY\R�ST5r[\R�SU5r\SVr]gW)Y�TestBufferProtocolic�"�[5Ulgr�)�get_sizeof_void_p�
sizeof_void_p��selfs rA�setUp�TestBufferProtocol.setUps
��.�0��rcF)�sliced�castc

�&^^^^^^^^	^
^'^(^)�T(a[T5T-m(OT(d[T	5m(OTm(Sm)TR(a�TRTS5 Sn[	ST5H+n
TU
S:Xa O!TU
S::dMUTU
*TU
S-
--
nM- U/[	TS-
5Vs/sHnSPM sn-m)TR
nTSS:aU*nU/[
TSS5-mTRTRU5 TRTRT(5 TRTRT5 TRTRT5 TRTRU5 TRTRT5 TRTR[!T55 T
(aT)(d%TRTR"[!T55 TRTR[!T)55 [%T[&5(d[)T5(a9T(aTR+5OTR-5nTRUT	5 T(dgU(Gd3[/5nSn[1T5H�n[3TU5n[5T	U5n[%U[ 5(a[6R8"T/UQ76nO[6R8"TU5nUR;U5 TRUU5 M� U(Gd�TRTR-5U5 [?T5nSRASU55nTRURC5U5 T(aTOSn[ET	5nS	GH
nTnUS
:Xa?[GTS5(a[GTS5(a[IUT5n['UTU[JS
9nO3[GTS5(a[GTS
5(aUS:Xa['UTUS9n[MT[NU5nTRUR-5U5 TRQ[SUU55 TS:XaM�[U5nU(aSO[Tn [WTS[X5nTR[U5UT-5 [	U5V
s/sHn
[6RZ"TUU
T-5PM  n!n
[U!S5S:XaU!Vs/sHo�SPM	 n!n['U!TU TS9n"TR[?U"5[?T55 [?T5R-5n#TRU#U5 [?T5R-SS9n#TRU#U5 [?T5R-SS9n#TRU#U5 [WTS
[X5nTR[U5UT-5 [	U5V
s/sHn
[6RZ"TUU
T-5PM  n!n
[U!S5S:XaU!Vs/sHo�SPM	 n!n['U!TU [J-TS9n"TR[?U"5[?T55 [?T5R-S
S9n#TRU#U5 [WTS[X5nTR[U5UT-5 [	U5V
s/sHn
[6RZ"TUU
T-5PM  n!n
[U!S5S:XaU!Vs/sHo�SPM	 n!n[GTS
5(a[JOSn$['U!TU$U -TS9n"TR[?U"5[?T55 [?T5R-SS9n#TRU#U5 GM [)T5(a|[?T5n[%T[>5(aTROTm'U4U'U(UUU	UUUUU
UU)4Sjjn%U%"U5 UR]5n&U%"U&SS9 SSS5 UR-5 ggs snf![<a Sn GM8f=fs sn
fs snfs sn
fs snfs sn
fs snf![<a gf=f!,(df   Nh=f)Nr�rr/r�TrCc3�,# �UH
nSU-v� M g7f)z%02xNr�)r�rs  rAr��,TestBufferProtocol.verify.<locals>.<genexpr>]s���2��1�F�Q�J��s�r�r��F�Arorpr��r�r!r"�r�r!�r�r"r!��orderc�r>�T
RURT5 T
RURT5 T
RURT5 T
RUR
T5 T
RURU5 T
RURT5 T
RUR[T55 T(aT(d%T
RUR[T
55 T
RUR[T55 TS:XaT
R[[U5 O$T
R[U5[T55 T(aT	R5OT	R!5nT
RUT5 T
RUT	5 g)Nr)�assertIsr`�assertEqualr0r�r!�readonlyr�r�rir�rY�assertRaisesrVrhrUr2)rK�expected_readonly�rep�ex�expected_lenr>r�rnr��resultrfr�rir�rYs   ������������rA�check_memoryview�3TestBufferProtocol.verify.<locals>.check_memoryview�s/����
�
�a�e�e�R�(�� � ����<�8�� � ����X�6�� � ����3�/�� � ����->�?�� � �����.�� � ����%��,�7��:��$�$�Q�Y�Y��g��?�� � ����u�Z�/@�A��1�9��%�%�i��a�8��$�$�S��V�S��X�6�),�f�m�m�o�&�.�.�2B��� � ��c�*�� � ��F�+rc)r{)/r�rhrY�
assertGreaterrmrdr�rwr`rxr0r�r!ryr�r�rir�r�rr�rUr2r(r��get_pointerr�r;r<�extend�BufferErrorrT�join�hexr��
is_contiguousr��
ND_FORTRAN�get_contiguous�
PyBUF_READ�
assertTrue�
cmp_contigr#�py_buffer_to_contiguous�
PyBUF_FULL_RO�unpack_from�
toreadonly)*rfrr`r�r>ryr�r�r�rnrirj�
suboffset0rr��stride0r|r�buf_errr��item1�item2rarKr�ff�	flattenedru�expected�trans�contigry�ro�initlst�y�contig_bytesrr��mmr}r~rYs*`` `` `````                            @@@rA�verify�TestBufferProtocol.verifys�����
���;�x�/�L��"�3�x��'���
�������t�Q�'��J��1�d�^����8�q�=���1�:��?��7�1�:�+��q��!��"<�<�J�	$�%��U�4��6�]�(C�]���]�(C�C�J��(�(�G��q�z�A�~�"�(���i�$�w�q�r�{�"3�3�G��
�
�f�j�j�#�&��������5�������(�3��������,��
�
�f�o�o�x�0�������d�+�������u�U�|�4��:����V�^�^�U�7�^�<�����*�*�E�*�,=�>��f�g�&�&�*>�s�*C�*C�%(�&�-�-�/�f�n�n�.>�C����S�#�&������A��G��u�~��
�'���4�E�$�S�#�.�E�!�%��/�/�"�K�K��4�e�4��"�K�K��U�3���H�H�Q�K�� � ���.�&��� � ����!1�1�5��v�&���G�G�2��2�2��� � �����!�,� �S�S��#�C�L�	�
-�E�%�H���|�,�V�S�9�9�(���5�5�%.�i��$?�E�'.�u�E�"�5?�(A�H�� -�V�S�9�9�(���5�5�%�3�,�'.�y��b�'Q�H�+�F�J��F�F��$�$�V�^�^�%5�q�9��O�O�J�v�x�$@�A��q�y� ��	�N�E�&��K�B�5�V�S�-�P�F��$�$�S��[�%�(�2B�C�(-�e��6�(4�1� &�1�1�#�v�q��z�J�(4��6��7�1�:��!�+�18�"9��A�Q�4���"9���u�B�s�K�A��$�$�Z��]�J�v�4F�G�#-�f�#5�#=�#=�#?�L��$�$�\�6�:�#-�f�#5�#=�#=�D�#=�#I�L��$�$�\�6�:�#-�f�#5�#=�#=�C�#=�#H�L��$�$�\�6�:�5�V�S�-�P�F��$�$�S��[�%�(�2B�C�(-�e��6�(4�1� &�1�1�#�v�q��z�J�(4��6��7�1�:��!�+�18�"9��A�Q�4���"9���u�B�z�M�'*�,�A��$�$�Z��]�J�v�4F�G�#-�f�#5�#=�#=�C�#=�#H�L��$�$�\�6�:�5�V�S�-�P�F��$�$�S��[�%�(�2B�C�(-�e��6�(4�1� &�1�1�#�v�q��z�J�(4��6��7�1�:��!�+�18�"9��A�Q�4���"9�&3�F�C�&@�&@�
�a�A���u�A�b�D��M�A��$�$�Z��]�J�v�4F�G�#-�f�#5�#=�#=�C�#=�#H�L��$�$�\�6�:�[-�^ ��$�$�
��v�&�� *�&�*�=�=����6�B�6>�
,�
,�
,�*
�Q������2� ��t�<� �
�I�I�K�?%��c)D��X#��"�G����l6��#:��"6��#:��6��#:���
��
��4 ��s[�,`:�A-`?�%a�a�;%a�8a#�%%a(�"a-�>a2�b�?a�a�2
a?�>a?�
bc
��SnUR(aU"U[5(d�U"U[5(aUR(a�U"U[5(aUR
(a�U"U[5(aUR(ajU"U[5(dUR(dGU"U[5(dUR(a$U"U[5(d,U"U[5(aUR[[X#S9 g[!U[5(d[#UR$5(aUR'5nO[U[(S9nUR'5nU"U[5(aSOURnUR$n	UR*n
UR,nU"U[5(dSn	UR/5nU"U[5(dSnU"U[5(aUR0OSnU"U[5(aUR2OSn
[X#S9nUR5XrX�UX�U
XdS9
 g)Nc��X-U:H$r�r�)�req�flags  rA�match�/TestBufferProtocol.verify_getbuf.<locals>.match�s���X�$�&�'rc��getbufFrCr/r�)	r`r�r>ryr�r�r�rnri)ry�PyBUF_WRITABLE�PyBUF_C_CONTIGUOUS�c_contiguous�PyBUF_F_CONTIGUOUS�f_contiguous�PyBUF_ANY_CONTIGUOUS�
contiguous�PyBUF_INDIRECTrY�
PyBUF_STRIDES�PyBUF_ND�PyBUF_FORMATrzr�rr�r�r!rUr�r�r�r2r�r�r�)rf�orig_exr}r�rir�rnr]r�r>r�r�r�r�s              rA�
verify_getbuf� TestBufferProtocol.verify_getbuf�s���	(��[�[�U�3��7�7�
�3�*�
+�
+�B�O�O�
�3�*�
+�
+�B�O�O�
�3�,�
-�
-�b�m�m��s�N�+�+��
�
��s�M�*�*�2�?�?��s�H�%�%�%��\�*B�*B����k�7�B��C���b�'�"�"�&:�2�9�9�&E�&E��)�)�+�C���M�2�B��)�)�+�C��C��0�0�U�b�k�k���i�i���;�;���w�w���S�,�'�'��C��/�/�#�C��S�(�#�#��D�!&�s�H�!5�!5��
�
�2��%*�3�
�%>�%>�'�/�/�B��
�R�
$�����B�%���G��	�	,rc�cpuc�b	�[[[[[[
[[[[[[[[[4n[S5Vs/sHo"S-(aSOSPM snS4/SQS4/SQS4[S5Vs/sHo"S-(aS	U-
OS
U-PM snS44n//S4/S
Q/S4S//S4S/S/S4S/S/S4S/S/S4SS//S4SS/SS/S4SS/SS/S4SS/SS/S44
nS[ ["["[ -[$[$[ -4nS[&[([&[(-4nUGH�upx[*R,"U5n	UGH�up�nUV
s/sHo�U	-PM	 nn
X�-nUGHbnU(aU["-(aMU
(dU[$-(aM2U
(aUOUSn[/X�UX�US9nU
(aUSSS2OSn[1U5nU(a[1U5nUR2S:XdUR2S:Xa U
(aU(aUR5UU5 U(a0UR2S:Xa U
(aU(aUR5WU5 UHknUHbnUR7UUUU-5 UR7UUUU-5 U(dM8UR7UUUU-SS9 UR7UWUU-SS9 Md Mm GMe GM� GM� /SQn[/US/[8S9nUR;[<[.U5 [/S/S/5n[/U[S9nUR;[<[.U[&S9 UR;[<[.U[S9 UR;[<[.U[S9 UR;[<[.U[S9 UR;[<[.U[
S9 UR;[<[.U[S9 [/U[S9n/SQ/SQ4H�n
S["4H�n[/XzU[ -S9nUR?[AUS55 UR?[AUS55 UHCn[/UUS9nUR?[AUS55 UR?[AUS55 ME M� M� gs snfs snfs sn
f) N�r#TFr�r/r#r_r9r�r:r:r9�	rr�r�rrr)r(rr)r/r_r/r�r�r:���r_r9���r/r9)r!r"r�r�r�)ri�r�r"r�r�)r/r�r/)r:rr:ror�)!r�r�r��PyBUF_SIMPLEr�r�r��
PyBUF_FULLr��
PyBUF_RECORDS�PyBUF_RECORDS_RO�
PyBUF_STRIDED�PyBUF_STRIDED_RO�PyBUF_CONTIG�PyBUF_CONTIG_ROrmr#r��ND_PILr�r�r;�calcsizerrTr�rxr��ND_GETBUF_FAILrzr�r�r�)rf�requestsra�	items_fmt�	structure�ndflags�
real_flagsr|r>r�r�r�r�r�r"�_items�ex1�ex2�m1�m2r��bitsr}�baser]rus                          rA�test_ndarray_getbuf�&TestBufferProtocol.test_ndarray_getbufsq��
�M�8�\�� 2�4H��
��+��+��/�	
��16�b�	�
:�	�1�!�e�d��&�	�
:�C�@�
)�3�/�
)�3�/�:?��)�
D�)�Q�q�5�u�Q�w�v�a�x�0�)�
D�c�J�	
�	���Q�K�
�b�!���T�2�q�M��T�B�4����S�1�#�q�M��S�2�$��O���V�R��O���V�b�"�X�r�"���V�a��V�Q����V�b�"�X�q�!�
�	�
�{�J�
�;�(>��F�;�&�
��
���$�\�1�3�
�$�J�E����s�+�H�*3�&���18�9��A�x�<���9��"��$�E��E�*�$4� � �e�F�l� �&+�U��q��F�!�&�E�(-�v�O�C�',�#�d��d�)�$�C�#�C��B��'��_���x�x�1�}����Q��5�W��(�(��S�1��s�x�x�1�}��7��(�(��S�1�'��$.�D� �.�.�s�C��T��B� �.�.�s�B��D��A�"�s� $� 2� 2�3��S��X�:>�!3�!@� $� 2� 2�3��C��H�:>�!3�!@�
%/� (�)%�+4�$�F-���U�2�$�n�
=�����+�w��3���s�Q�C� ��
�T�,�
/�����+�w��>��J����+�w��8��D����+�w��=��I����+�w��;M��N����+�w��;M��N����+�w��;O��P�
�R��
-���w�&�E��J����U�u�[�7H�I�����
�b�#� 6�7����
�b�#� 6�7�%�E� ��E�2�B��O�O�M�"�c�$:�;��O�O�M�"�c�$:�;�&�'�'��c;��E��6:s�R"�
R'
�R,c
��[S/S/5n[S/S/[S9n[URUR4GH�nUR[U1Sk5 UR[U/SQ5 UR[U/SQ5 UR[U/SQS1S	9 UR[U/SQS/S1S
9 UR[U/SQS//S9 UR[US/S/0S9 UR[US/S/0S
9 UR[US/S/0S9 UR[US/S/S/[
S9 UR[US//[S
9 UR[U/S/S	9 UR[US/S/SS9 UR[RUS/S/SS9 UR[USS/S/SS9 UR[U/SQS/SS9 [S-nUR[US/U-S/U-S	9 UR[US/S/S	9 UR[U/SQS/S	9 UR[US/SS-/S	9 UR[U/SQSS/SS9 UR[U/SQS/S/S
9 UR[US/S/SS-/S
9 UR[USS/SS/S/S
9 UR[U/SQS/S/SS9 UR[U/SQS/SS9 UR[U/SQS/SSS9 UR[U/SQS/S S9 UR[RUS/S/S!S9 /S"QnUR[X5SS/S#S$/S%S&9 UR[U[5S'S(9 UR[US/S/[S9 UR[US/5 GM� UR[[S)[S*9 [S/S/[S9nUR[URS/S/[S9 [S)5nUR[URS/S/5 UR[UR 5 [S/S/5nURS/S/5 [#U5nUR[URS/S/5 UR[UR 5 UR%5 UR!5 UR[UR 5 AUR[[&0/SQ5 UR[[&S)05 [[)[+S+55S/S+-S	9nUR[[&US%/5 [[)[+S,55SS/S	9nUR[[&U/S-Q5 UR[[&USS/5 UR[[&US#S/5 UR[[&US.S/5 [/SQS/SS9n[U[,S*9nUR[UR.5 [/SQS/SS9n[U5n	[U	5nUR[UR05 [S//S/S0S9nUR[UR05 [n[[)[+U55S/U-S	9nUR[UR05 [S/S/S	9nUR[[2SSSSS%5 UR[[2US1S25 UR[[2US.S25 UR[[2U[4S35 UR[6[2U[4S45 UR[[2U[4S55 UR[[2US6S75 [S/S/S	9nUR[[8SSSSS%5 UR[[80U5 UR[[8U05 [S/S/S	9nUR[[:SSSSS%5 UR[[:0S75 UR[[:US85 g)9Nr�r/�r">r/r#r_)r/r#rQ)r/r#�r_r9�r/r#r_r_�r��r�r��r�r�rrr�)r�r��r�r�r"�XXXri�r�r#r_r#�QLr�rQr&�r/r#r_r9r�rO�r/r#r_r9�r�r�r!r9)r�r�r!rCz@#$)
r/r#r_r9r�r:r:r9r�rr���r�r�)r�r�r�r�r!�123r�r�r�)r#r_r9r-)�r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/��LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL�xyzr��u �Z�rp��)r�ND_VAREXPORT�pushrzrVr�r�r�r;r=�ND_MAX_NDIM�
OverflowErrorr(r�r�r��poprT�releaser�r�rmr�rU�memoryview_from_bufferr�r��UnicodeEncodeErrorr�r�)
rfr]�ndmrrr|rKr}r�r�s
          rA�test_ndarray_exceptions�*TestBufferProtocol.test_ndarray_exceptionsrs+��
�a�S�1�#�
���q�c�A�3�l�3���2�7�7�C�H�H�-�A����i��G�4����i��I�6����i��K�8����i��G�A�3��?����i��G�A�3����L����i��G�A�3�r��J����i��Q�C��s�2��F����i��Q�C��s�"��E����i��Q�C��s�2��F�
���i��Q�C��s�Q�C�$.�
�
0�
���i��Q�C�r���H�
���j�!�R��s��;����j�!�e�W�Q�C���L����f�l�l�A��v�a�S���M����j�!�a��Y�q�c�#��N����j�!�W�Q�C���M��A�
�A����j�!�a�S��U�1�#�a�%��@�
���j�!�a�S����=����j�!�W�S�E��B����m�Q���A�s�F�8��D����j�!�[��1��a��P�
���j�!�W�Q�C�#���O����m�Q���A�3�'(�#�v�h�
�
0�
���j�!�a��U�1�Q�%�!���M����j�!�Y�q�c�A�3�%(�
�
*�
���j�!�W�Q�C���J����j�!�W�Q�C��%(�
�
*�
���j�!�W�Q�C���K����f�l�l�A��y���%*�
�
,�+�E����j�!�1�Q�%�')�2�h�q�
�
:�
���i��I�K���D�
���i��Q�C��s�:��N�
���i��Q�C�0�O.�V	
���+�w��~��N��a�S�1�#�\�
2�����*�b�g�g��s�Q�C�|��L��V�_�����+�r�w�w���a�S�9����+�r�v�v�.��a�S�1�#�
��
�����a�S���r�N�����+�r�w�w���a�S�9����+�r�v�v�.�	�	�	��
����	
���+�r�v�v�.��	
���)�[�"�g�>����)�[�&�"�=�
�T�%��*�%�a�S��W�
5�����*�k�2��s�;�
�T�%��)�_�Q�q�E�
2�����*�k�2�w�?����*�k�2��!�u�=����*�k�2��1�v�>����-��b�5��)�D��W�Q�C��
4��
�R��
-�����*�b�i�i�0��g�a�S��5���c�l��
�S�\�����)�R�%>�%>�?�
�h�Z��s�7�
;�����)�R�%>�%>�?���
�T�%��(�^�A�3�q�5�
1�����*�b�&?�&?�@��a�S���
$�����)�^�Q��1�a��C����)�^�R���D����-���U�C�H����)�^�R��S�I����,�n�b�*�"�	$����*�n�b�*�c�J����*�n�b�#�s�C��a�S���
$�����)�Z��A�q�!�Q�?����)�Z��R�8����)�Z��R�8��a�S���
$�����)�]�A�q�!�Q��B����)�]�B��<����)�]�B��<rcc�|�[[S55H�nS/S-n[/SQS/[S9n[	U5US'[SS5H#nUR/SQS/S9 [	U5X$'M% [S5HnX!UR
5 M UR[UR5 AM� g)Nr�rr�r_r�r/r�)
rrmrr�rTr�r�rzr�r�)rf�permrKr]rs     rA�test_ndarray_linked_list�+TestBufferProtocol.test_ndarray_linked_lists��� ��q��*�D���A��A�����<�@�B��b�>�A�a�D��1�a�[�������s��+�!�"�~���!��1�X���q�'�
�"�"�$��
���k�2�6�6�2��+rcc
��[S5H=upn[R"U5n[USUS9nUR	USXASSSSUS9	 M? g)Nrr�rrT�r`r�r>ryr�r�r�rn)r�r;r�rr�)rfr>�scalarrzr�r]s      rA�test_ndarray_format_scalar�-TestBufferProtocol.test_ndarray_format_scalar sT��)�!�n�N�C�����s�+�H���r�#�6�B��K�K���!)�T��b�"�"�
�
$�-rcc���[SS5n[U5HNup#n[R"U5nS[4H&n[X1/X&S9nUR
USXRSSU4U4US9	 M( MP g)Nr/rrrrqTr)rr�r;r�r�rr�)rfr�r>r|rzr�r"r]s        rA�test_ndarray_format_shape�,TestBufferProtocol.test_ndarray_format_shape*ss���A�r�"��(��0�M�C�����s�+�H��V����U�(�3�L�����B�D�%-��!"�6�)�h�[� %��'�%�1rcc�`�[SS5n[U5H�up#n[R"U5n[	SS5HgnUS:XaM[USSU25/nXe-/nUS:aXQS-
-OSn	S[4H*n
[X7UX)U
S9nURUSXRSSXxUSSU2S9	 M, Mi M� g)	Nr/����r�rr Tr)	rr�r;r�rmrhr�rr�)rfr�r>r|rzr�rr�r�r�r"r]s            rA�test_ndarray_format_strides�.TestBufferProtocol.test_ndarray_format_strides6s����1�b�!��(��0�M�C�����s�+�H��b�!����1�9���U�6�T�6�]�+�,���=�/��04�q���!�8�,�a����[�E� ��W�(+�%�I�B��K�K���)1�T�%&�e�$)�&�D�&�M� �3�)�%�1rcc��/SQn[USSS9n[U[[-S9nURUR	5[US55 g)Nr�r�)r/r_r�r�)rr�r�rxrUr�)rfr|r}r]s    rA�test_ndarray_fortran�'TestBufferProtocol.test_ndarray_fortranKsD��,��
�U�&�&�
9��
�R� 2�<� ?�
@���������f�U�F�&;�<rcc��[S5GHun[U5Vs/sHn[SS5PM nn[U5n[U5GH1n[	U5upgn[
R"U5nS[4H�n	US:XaU	[:XaM[XuXiS9n
[XUS5n[Xu5nURU
SX�SXUUS9	 [U5(ab[XuUS	9n
[U
[[-S
9n
URU
R S:H5 U
R#5nURUSX�SXUUS9	 [XuUU	[$-S9n
[XUS5n['Xu5nURU
SX�SXUUS9	 M� GM4 GMx gs snf)
Nr�r#rrrrqr�Trrrr�r�ro)rmrr�rr�r;r�r�rr�r�r�r�r�r�r�r�r�r�r�)rfr�rz�shape_tr�r�r>r|r�r"r]r�rnr}�mvs               rA�test_ndarray_multidim�(TestBufferProtocol.test_ndarray_multidimQs����!�H�D�16�t��=��A�y��B�'��G�=��'�]�F�%�g�.�� )�&� 1�
��A�!�?�?�3�/����[�E��q�y�U�f�_� �!��C�M�B�0��h��L�G� ��.�C��K�K���)1�T�%)��$'� �)�
,�C�0�0�$�U��D��$�R���0L�M������
�
�b�(8�9��6�6�8�����B�D�-5��)-�G�(+�$�-�!��C�',�Z�'7�9�B�1��h��L�G� ��.�C��K�K���)1�T�%)��$'� �)�?)�/���=s�Fc��[S/S/S9nUR[URSS5 [	U5nURX!5 UR[URSS5 [S/S/[S9nUR[URS5 [	U5nURX!5 UR[URS5 [S/S/[S9nUR[URS5 UR[URSS5 [	U5nURX!5 UR[URS5 UR[URSS5 /SQn[U[U5/S[S9nUR[RURS	S
5 UR[URSS5 [	U5nURX!5 UR[URS	S
5 UR[URSS5 /SQn[U[U5/S
[S9nUR[URS	S
5 UR[RURSS5 g)Nr/r�r9r�r-�r/r#r_r9r�r:r:r9rrqr#i,)r���)�r/r#r�)r�r:�LQ)s1r)rrzrV�__setitem__rTrxr#�__delitem__r��__getitem__�
IndexErrorrhr;r=r�)rfr]rr|s    rA�test_ndarray_index_invalid�-TestBufferProtocol.test_ndarray_index_invalid~s��
�a�S���
$�����)�R�^�^�Q��:�
��^������ ����)�R�^�^�Q��:��a�S���;�
7�����)�R�^�^�Q�7�
��^������ ����)�R�^�^�Q�7��a�S���;�
7�����-�����?����-������B�
��^������ ����*�b�n�n�e�<����*�b�n�n�e�Q�?�"��
�U�3�u�:�,�s�+�
N�����&�,�,�����3�?����*�b�n�n�a��D�
��^������ ����*�b�n�n�a��=����)�R�^�^�Q�
�C�%��
�U�3�u�:�,�t�;�
O�����*�b�n�n�a��=����&�,�,�����?�Krcc�.�[SS[S9n[U5nURX!5 USo0RUS5 USo0RUR	5UR	55 USo0RUS5 USo0RUR	5UR	55 UR[URS5 UR[URS5 UR[URSS5 UR[URSS5 URUR	5S5 URUR	5S5 SUS'URUR	5S5 SUS'URUR	5S5 SUS'URUR	5S5 SUS'URUR	5S5 g)	Nr/r�r�.rr9r�r�)	rr#rTrxrUrzrVrr)rfr]rras    rA�test_ndarray_index_scalar�,TestBufferProtocol.test_ndarray_index_scalar�s���
�Q�b��
4��
��^������ ��r�F��%�%�a��+��s�G��%�%�a�h�h�j�"�)�)�+�>��r�F��%�%�a��+��s�G��%�%�a�h�h�j�"�)�)�+�>����)�R�^�^�Q�7����)�R�^�^�Q�7����)�R�^�^�Q��:����)�R�^�^�Q��:��������a�(��������a�(���2��D�$�$�R�Y�Y�[�!�4���2��D�$�$�R�Y�Y�[�!�4���3��T�%�%�b�i�i�k�1�5���3��T�%�%�b�i�i�k�1�5rcc	��[[[S55SS/[S9n[U[S9nUR[URS5 UR[UR[SSS55 g)	Nr9r#r9r�r�r/r_r�)	rr�rmr#r�rzr�rr)rfr}r]s   rA�test_ndarray_index_null_strides�2TestBufferProtocol.test_ndarray_index_null_strides�s_��
�T�%��*�%�a��V�;�
G��
�R��
-��	
���+�r�~�~�q�9����+�r�~�~�u�Q�q��|�Drcc��[S5GHupn[US/US9n[SS5HnURXEX%5 M UR	[
URS5 UR	[
URS5 [U5(dM�[U5nURXd5 [SS5HnURXeX%5 M UR	[
URS5 UR	[
URS5 GM [S5H�upn[US/[US9n[U[[-S9n[SS5HnURXEX%5 M [U5(dMgUR5nURURU5[5 [SS5HnURXeX%5 M M� /SQn[US/S9n[U[ S9n[SS5HnURXEX%5 M /SQn[US/S9n[U["S9n[SS5HnURXEX%5 M g)	Nr�rrr���rsr�r�r�)r�rrmrxrzrrr�rTr#r�r�r�rw�__eq__�NotImplementedr�r�)rfr>r|rzr]rrr}s        rA�!test_ndarray_index_getitem_single�4TestBufferProtocol.test_ndarray_index_getitem_single�s$��(��^�M�C����q�c�#�6�B��2�q�\��� � �����1�"�
���j�"�.�.�"�=����j�"�.�.�!�<�#�C�(�(���^��� � ��(��r�1��A��$�$�R�U�E�H�5�&��!�!�*�b�n�n�b�A��!�!�*�b�n�n�a�@�,�$)��^�M�C����q�c��S�I�B���L��$=�>�B��2�q�\��� � �����1�"�$�C�(�(��.�.�0���
�
�b�i�i��m�^�<��r�1��A��$�$�R�U�E�H�5�&�,���
�U�1�#�
&��
�R��
0���r�1��A����R�U�E�H�-����
�U�1�#�
&��
�R��
-���r�1��A����R�U�E�H�-�rcc��[S5GHSupn[US/U[S9n[S5HnX2U'X4U'M
 UR	UR5U5 UR
[URSU5 UR
[URSU5 [U5(dM�[US/U[S9n[U5nUR	Xd5 [S5HnX2U'X6U'M
 UR	UR5U5 UR
[URSU5 UR
[URSU5 GMV [S5H�upn[US/U[S9n[SS5HnX%S-X%'XES-XE'M UR	UR5U5 [U5(dMn[US/U[S9n[U5nUR	Xd5 [SS5HnX%S-X%'XeS-Xe'M UR	UR5U5 M� g)Nr�rqr(rr9r/)r�rr#rmrxrUrzrrr�rT)rfr>r|�single_itemr]rrs       rA�!test_ndarray_index_setitem_single�4TestBufferProtocol.test_ndarray_index_setitem_single�s��'2�1�~�#�C����q�c�#�[�I�B��1�X��&�a��#�1���
���R�Y�Y�[�%�0����j�"�.�.�"�k�J����j�"�.�.�!�[�I�'��,�,����q�c�#�[�I�B��B��B����R�$��1�X��&�a��#�1���
���R�Y�Y�[�%�0����j�"�.�.�"�k�J����j�"�.�.�!�[�I�-(6�4(3�1�~�#�C����q�c�#�[�I�B��2�q�\�� �1��:����Q�3����"�
���R�Y�Y�[�%�0�'��,�,����q�c�#�[�I�B��B��B����R�$��2�q�\�� �1��:����Q�3����"�
���R�Y�Y�[�%�0�!(6rcc
���Sn[U5n[U5GH�n[U5upEnS[4GH�n[	XSXGS9n[XS5n	[
US*US5H�n
URX�X�R55 [
US*US5HinURX�UX�UR55 [
US*US5H%nURX�UUX�UU5 M' Mk M� [	XSUU[-S9n[XS5n	[
US*US5H�n
URX�X�R55 [
US*US5HhnURX�UX�UR55 [
USUS5H%nURX�UUX�UU5 M' Mj M� GM� GM� g)N�r#r_r�rrqr/r#)r�rr�r�rr�rmrxrUr�r�)
rfrr�r�r>r|rzr"r]rnrr��ks
             rA�#test_ndarray_index_getitem_multidim�6TestBufferProtocol.test_ndarray_index_getitem_multidim&s������g���!�'�*�E�%�f�-�M�C���V����U��I���U�*����a��y�%��(�3�A��$�$�S�V�R�U�\�\�^�<�"�E�!�H�9�e�A�h�7���(�(�����B�E�!�H�O�O�4E�F�!&��a��y�%��(�!;�A� �,�,�S�V�A�Y�q�\�2�5��8�A�;�G�"<�8�4��U��#(��#3�5���U�*����a��y�%��(�3�A��$�$�S�V�R�U�\�\�^�<�"�E�!�H�9�e�A�h�7���(�(�����B�E�!�H�O�O�4E�F�!&�u�Q�x��q��!:�A� �,�,�S�V�A�Y�q�\�2�5��8�A�;�G�";�8�4�#%�	+rcc�H�[SSS9nUR[[S[	55 [U5nUR
X!5 UR[[S[	55 [S5H�up4n[US/US9n[U5H,upgUR
XtU5 URXq;5 M. [U5(dM_[U5n[U5H,upgUR
XtU5 URXr;5 M. M� g)Nr/r�r�z1 in ndz1 in mvr�rr)rrzrV�eval�localsrTrxr�r)r�r�)rfr]rr>r|rzrr�s        rA�test_ndarray_sequence�(TestBufferProtocol.test_ndarray_sequenceEs���
�Q�b�
!�����)�T�9�f�h�?�
��^������ ����)�T�9�f�h�?�(��^�M�C����q�c�#�6�B�!�"�
���� � ��!�H�-������(�&�$�C�(�(���^��%�b�M�D�A��$�$�Q�a��1��O�O�A�G�,�*�,rcc
�p
�/SQn[US/[S9n[U5nUR[UR
[
SSS5U5 UR[UR
[
SSS5U5 [US/[S9n[US/[S9n[U[S9nUR[UR
[
SSS5U5 [US/S[S9n[U5nUR[UR[
SSS55 UR[UR[
SSS55 [US	S
/S[S9n[U5nUR[UR[
SSS5[
SSS545 UR[UR[
SSS5[
SSS545 UR[URS5 UR[URS[
SSS545 UR[UR[
SSS5045 UR[UR[
SSS5[
SSS545 UR[URS5 [US/S[S9n[US/S
S9n[U5n[U5nUR[UR
[
SSS5USS5 URUR5U5 UR[UR
[
SSS5USS5 URUR5U5 [US/S[S9n[US/SS9n	[U5n[U5nUR[UR
[
SSS5USS5 URUR5U5 UR[UR
[
SSS5USS5 URUR5U5 [US	S
/S
[S9n[US/S
S9n[U5n[U5nUR[UR
[
SSS5USS5 URUR5/SQ/SQ/5 UR[UR
[
SSS5USS5 [US/S
[S9n[US/S
S9n[U5n[U5nUR[UR
[
SS	S5USS5 URUR5U5 UR[UR
[
SS	S5USS5 URUR5U5 UR[[[
SSS	505 UR[[SS5 UR[[[
SSS5S
5 [US/S
[S9n
UR[U
R 5 [US/SS9n[U["S9n
UR[U
R 5 g)Nrr9r�rr/r�rrqr#r9z@%$rrrrr:r�)r�r:r:r9z###########)rr#rTrzrVrrr�r�r�rrWrxrUr	r��add_suboffsetsr�)rfr|�xl�mlr}�xrr]r�mr�yrras           rA�test_ndarray_slice_invalid�-TestBufferProtocol.test_ndarray_slice_invalidXsz��!���U�1�#�[�
9��
��^�����)�R�^�^�U�1�Q�q�\�5�I����)�R�^�^�U�1�Q�q�\�5�I��U�1�#�[�
9��
�U�1�#�[�
9��
�R��
)�����+�r�~�~�u�Q�q��|�R�H��U�1�#�c��
E��
��^�����*�b�n�n�e�A�a��l�C����*�b�n�n�e�A�a��l�C�
�U�1�Q�%��;�
G��
��^�����*�b�n�n� ��1�Q�<��q��1��6�	8����*�b�n�n� ��1�Q�<��q��1��6�	8����)�R�^�^�U�;����)�R�^�^�e�U�1�Q�q�\�5J�K����)�R�^�^�e�A�a��l�B�5G�H�	
���-�r�~�~� ��1�Q�<��q��1��6�	8����)�R�^�^�U�;��U�1�#�c��
E��
�U�1�#�c�
2��
��^��
��^�����*�b�n�n�e�A�a��l�B�q��G�L��������e�,����*�b�n�n�e�A�a��l�B�q��G�L��������e�,��U�1�#�c��
E��
�U�1�#�c�
2��
��^��
��^�����*�b�n�n�e�A�a��l�B�q��G�L��������e�,����*�b�n�n�e�A�a��l�B�q��G�L��������e�,��U�1�a�&��K�
H��
�U�1�#�c�
2��
��^��
��^�����*�b�n�n�e�A�a��l�B�q��G�L��������y�)�&<�=����-�r�~�~�u�Q�q��|��Q�q�'�	#��U�1�#�c��
E��
�U�1�#�c�
2��
��^��
��^�����*�b�n�n�e�A�a��l�B�q��G�L��������e�,����*�b�n�n�e�A�a��l�B�q��G�L��������e�,�	
���)�]�E�!�A�a�L�"�E����)�]�M�1�E����*�m�U�1�Q�q�\�1�E��E�!��S��?�����)�Q�%5�%5�6�
�U�1�#�c�
2���B�|�,�����)�Q�%5�%5�6rcc��/SQn[US/S[S9n[US/SS9nUSSUSS&URUR5U5 [	U5n[	U5nURXB5 URXC5 USSUSS&URUR5U5 [USS/S[S9n[USS/SS9nUS	S
2SS24US	S
2S
S
24'URUR5[USS/55 g)Nr�r�rrqrrr�r9r_r/r#)rr#rxrUrTr�)rfr|rar�r>r@s      rA�test_ndarray_slice_zero_shape�0TestBufferProtocol.test_ndarray_slice_zero_shape�s��,���E�"��c��E���E�"��c�2���1�Q���!�A���������U�+�
��]��
��]�������������Q�q�'��1�Q���������e�,��E�!�Q���;�G���E�!�Q���4����!��Q�q�S��k��!�A�#�q��s�(���������V�E�A�q�6�%:�;rcc	�F�Sn[U5n[U5n[U5H�n[U5upVn[R
"U5nS[4H�n	[XdXYS9n
[Xd5n[X$5HZnSn
[X�5nSnX�nU(dU
(aURUU
5 M:URWR5W5 M\ M� M� g![anURn
SnANqSnAff=f![anURnSnAN�SnAff=f�Nr2rrq)rhr�rr�r;r�r�rr�rMr��	Exception�	__class__rwrxrU)rfrr�r�r�r>r|rzr�r"r]rnr��listerrrir�nderr�ndsliceds                  rA�test_ndarray_slice_multidim�.TestBufferProtocol.test_ndarray_slice_multidim�s������7�|���g���!�'�*�E�%�f�-�M�C�����s�+�H��V����U��I���U�*��*�4�7�F�"�G�.�!+�C�!8��!�E�,�#%�:�����
�
�e�W�5��(�(����):�F�C�#8�	%�+��%�.�"#�+�+���.��%�,� !�����,�s0�<C�
D�
C=	�'C8	�8C=	�
D 	�
D	�D 	c��Sn[U5n[U5n[U5H�n[U5upVn[R
"U5n[
XdUS9n	U	R5 [
XdUS9n
U
R5 [U
5n[Xd5n[X$5HZn
Sn[X�5nSnX�nU(dU(aURUU5 M:URWR!5W5 M\ M� g![anURnSnANmSnAff=f![anURnSnAN�SnAff=f)N)r#r_r�r#rr)rhr�rr�r;r�rr<rTr�rMr�rIrJrwrxrU)rfrr�r�r�r>r|rzr�r]r}rrnr�rKrirrLrMs                   rA�'test_ndarray_slice_redundant_suboffsets�:TestBufferProtocol.test_ndarray_slice_redundant_suboffsets�s�����7�|���g���!�'�*�E�%�f�-�M�C�����s�+�H���C�8�B�������C�8�B������B��B���&�C�&�t�3����*�'��4�F���(�!�z�H��G��M�M�%��1��$�$�X�_�_�%6��?�#4�+��"!�*��k�k�G��*��!�(��K�K�E��(�s0�&D�4D&�
D#�
D�D#�&
E�0E�Ec�v�[S5GH�upn[S5GH�n[S5GH�nS[4GH�nU[-n[	US/XS9n[	US/XS9n	[U	5n
SnSnUSSn
X�nX�nX�X�'[
U5[
U5:gnSnX�X�'U(aURU[5 O2URUR5U
5 URUU5 [U5(dM�SnX�X�'U(aURU[5 M�URU
R5U
5 URX�5 URUU5 URX�URUSUR UR"UR$UR5S9	 GM� GM� GM� GM� g![anURnSnAGNSSnAff=f![anURnSnAGNnSnAff=f![anURnSnAGN'SnAff=f)Nr�rrqFr)r�r=r�r#rrTrhrIrJrwr�rxrUr�r�r�r�r�r�)rfr>r|rz�lslicerCr"rr]r}r�lsterr�diff_structurern�lval�rvalrrL�mverrs                   rA� test_ndarray_slice_assign_single�3TestBufferProtocol.test_ndarray_slice_assign_singles���(��^�M�C��#�A�,��'��l�F�"#�V���!�+�-��$�U�1�#�c�K��$�U�1�#�c�K��'��^��!%��)-��#�A�h��1�#&�;�D�#&�;�D�*-�+�C�K�-0��Y�#�d�)�-C�N�!%��0�)+��B�J�*� �M�M�%��<� �,�,�R�Y�Y�[�#�>� �M�M�%��8�3�C�8�8�$� $��0�)+��B�J�*� �M�M�%��<� �,�,�R�Y�Y�[�#�>� �,�,�R�4� �M�M�%��8� �K�K��')�{�{��e�#%�7�7�"�(�(�B�J�J�"$�)�)�+�(�/�["-�+�'�,��$ )�1�%&�[�[�F��1�� )�0�$%�K�K�E��0�� )�0�$%�K�K�E��0�sH�3%G�G3�H�
G0�G+�+G0�3
H�=H�H�
H8�!H3�3H8c
�R�Sn[U5n[U5n[U5H�n[U5upVnS[4H�n[[5H�n[X$5up�[XdUU[-S9n[Xd5nSn
[X�X�5nSnX�X�'U(dU
(aURUU
5 MgURUR!5W5 M� M� M� g![anURn
SnANsSnAff=f![anURnSnAN�SnAff=frH)rhr�rr�r�rm�
ITERATIONSrrr#r�r�rIrJrwrxrU)rfrr�r�r�r>r|rzr"r�r�r]rnrKrrrLs                 rA�"test_ndarray_slice_assign_multidim�5TestBufferProtocol.test_ndarray_slice_assign_multidim>s�����7�|���g���!�'�*�E�%�f�-�M�C���V����z�*�A�';�D�'H�$�G� ��C�',�[�'8�:�B� ��.�C�"�G�.�!2�3�W�!N��!�E�,�&(�k������
�
�e�W�5��(�(�����f�=�-+�%�	+��%�.�"#�+�+���.��%�,� !�����,�s0�?C#�D�#
D	�-C>	�>D	�
D&	�D!	�!D&	c��[[5GH�n[SGH�n[R"U5n[US[[S9nUR[U65 [X$5n[XRU5nUR5n[U5n[U5(a!UR5n	URX�5 USS:�a}[XRU[ S9n
U
R5nURX{5 [U
5n[U5(a2URX�5 UR5n	URX�5 ["(dGM<USnSU;aGMJ[%XRU5n
UR'USU
R(USU
R*U
R,U
R.U
R5S	9	 GM� GM� g)
NrDT�rrr#rr�r_Fr)rmr]rZr;r�r�MAXDIM�MAXSHAPEr�r�rr$rUrTr�rxr�r+r-r�r�r�r�r�)rfrzr>r�r�r|ra�xlistr�mvlistr��ylistr��zs              rA�test_ndarray_random�&TestBufferProtocol.test_ndarray_random_sn���z�"�A��s�|��!�?�?�3�/��"�8�T�&�,4�6����� 0�!� 4�5�0��8��*�5�q�9�����
����]��'��,�,��Y�Y�[�F��$�$�V�3��Q�4�!�8�.�u�1�F�K�A��H�H�J�E��$�$�U�2�#�A��B�+�C�0�0��(�(��/�!#������(�(��7��;��a�D�E��E�z� �2�5�q�A�A��K�K��t�)*����u�%&�V�V�1�7�7�A�I�I�$%�H�H�J� �0�C$�#rcc	���[[5H�n[SH�n[R"U5n[US[[S9nUR[U65 [X$5nSn[XRU5nURU5 [(dM|Sn	[!XRU5n
M� M� g![anURnSnANQSnAff=f![anURn	SnANGSnAff=f)NrDFra)rmr]rZr;r�rrbrc�assertFalser�rr$rIrJr�r+r-)rfrzr>r�r�r|rLrar�	numpy_errr�s           rA�test_ndarray_random_invalid�.TestBufferProtocol.test_ndarray_random_invalid�s����z�"�A��s�|��!�?�?�3�/��"�8�U�6�,4�6��� � �!1�1�!5�6�0��8����(�.�u�1�=�A�����&��;� %�I�0�6�u�1�E���-$�#��!�(��K�K�E��(��%�0�$%�K�K�	��0�s0�.B0�C�0
C�:C�C�
C3�C.�.C3c��[[5GH�n[SGH�n[R"U5n[[[S9upEpg[USUS9n[USUS9n	UR[U65 UR[U	65 [X(5n
[X)5n[X�U5n[X�U	5n
X�X�'UR5nU
R5n[U5n[U
5nURUR5U5 URUR5U5 USS:�a�U	SS:�a�[X�U[ S9n[X�U	[ S9nUUUU'UR5nUR5nURUU5 URUU5 [U5n[U5nURUR5U5 URUR5U5 ["(dGM�SU;dSU;aGM[%X�U5n[%X�U	5nUUUU'['U5(d]['U	5(dMUR)USUR*USUR,UR.UR0UR5S	9	 UR)U
SUR*USUR,UR.UR0UR5S	9	 GM� GM� g)
NrDraTr�r#rr�Fr)rmr]rZr;r�rrbrcrr�r�rr$rUrTrxr�r+r-r�r�r�r�r�r�)rfrzr>r�r�r�r�r��tl�tr�litems�ritemsr=r?�xllist�xrlistr>r@�ylrA�yllist�yrlist�zl�zrs                        rA� test_ndarray_random_slice_assign�3TestBufferProtocol.test_ndarray_random_slice_assign�s����z�"�A��s�|��!�?�?�3�/��(�v��I�1���#�H�d�&�A��#�H�d�&�A����� 0�"� 5�6���� 0�"� 5�6�1�#�:��1�#�:��+�F��<��+�F��<�� �k���������������^����^��� � �����f�5�� � �����f�5��a�5�1�9��A����/��R�v�N�B�/��R�v�N�B�"$�W�+�B�w�K��Y�Y�[�F��Y�Y�[�F��$�$�V�V�4��$�$�V�V�4�#�B��B�#�B��B��$�$�R�Y�Y�[�&�9��$�$�R�Y�Y�[�&�9��;��F�{�a�6�k� �3�F��D�B�3�F��D�B�"$�W�+�B�w�K�)�"�-�-�n�R�6H�6H����B�D�-/�[�[�c�E�)+������,.�J�J�B�I�I�K�$�I�
�K�K���)+���#��%'�W�W�B�H�H�(*�
�
��	�	�� �E�m$�#rcc��/SQn[USS/[S9n[U5nURUR[-5 UR	UR
U5 UR
URS5 URUR5 URUR5 URUR5 g)Nr�r_r9r�)rr�)rr�r�r"rwr`rxrYrkr�r�r�)rfr|r]r}s    rA�test_ndarray_re_export�)TestBufferProtocol.test_ndarray_re_export�s���,��
�U�1�Q�%�v�
6��
�R�[��������6�)�*��
�
�b�f�f�b�!��������0�������)�������)�������'rcc	�2�S[4GH
n[/SQS/US9n[U5nURX25 URUR	5/5 URUR	5/5 [/SQ/SQUS9nURUR	5/5 [/SQ/SQUS9nURUR	5////5 [/SQ/SQUS9nURUR	5/////////////5 GM
 g)Nrr�r��rr_r_�r_rr_)r_r_r�r�rrTrxrU�rfr"r]rs    rA�test_ndarray_zero_shape�*TestBufferProtocol.test_ndarray_zero_shape�s�����[�E�����5�9�B��B��B����R�$����R�Y�Y�[�"�-����R�Y�Y�[�"�-����u�=�B����R�Y�Y�[�"�-����u�=�B����R�Y�Y�[�2�r�2�,�7����u�=�B����R�Y�Y�[�!�2�r�l�R��R�L�2�r�2�,�G�
I�!rcc��S[4Hrn[S/S/S/US9n[U5nURX25 URUR	5/SQ5 URUR	5/SQ5 Mt g)Nrr/r�r�)r/r/r/r/r/r�r�s    rA�test_ndarray_zero_strides�,TestBufferProtocol.test_ndarray_zero_stridessi����[�E��!��Q�C�!��E�B�B��B��B����R�$����R�Y�Y�[�/�:����R�Y�Y�[�/�:�!rcc��[[[S55S/SS9nURURS5 URUR5/SQ5 g)N�r_r:r�)r:r9r�)rr�rmrxr�rU�rfr]s  rA�test_ndarray_offset�&TestBufferProtocol.test_ndarray_offsetsD��
�T�%��)�_�Q�C��
:��������A�&��������g�.rcc��S[4HBn[[[S55S/US9nUR	5nURX25 MD g�Nrr_r�)r�rr�rmr�rx)rfr"r]rKs    rA�#test_ndarray_memoryview_from_buffer�6TestBufferProtocol.test_ndarray_memoryview_from_buffersD����[�E���e�A�h���s�%�@�B��)�)�+�A����Q�#�!rcc	��S[4HQn[[[S55S/US9n[S5H!nUR	X#[X#/55 M# MS gr�)r�rr�rmrxr�)rfr"r]rs    rA�test_ndarray_get_pointer�+TestBufferProtocol.test_ndarray_get_pointersO����[�E���e�A�h���s�%�@�B��1�X��� � ����B��(<�=��!rcc�8�[[[S55/SQS9n[U[[-S9nURUR
5UR
55 [U5nURUR
5UR
55 g)Nr�)r#r#r�r�r�)rr�rmr�r�rxrUrT)rfr}r]rKs    rA� test_ndarray_tolist_null_strides�3TestBufferProtocol.test_ndarray_tolist_null_stridessh��
�T�%��)�_�G�
4��
�R��� 5�
6���������b�i�i�k�2��r�N���������R�Y�Y�[�1rcc�l�UR[SS55 [[[	S55SS/S9n[[[	S55SS/S9nUR[X55 [S/S/SS	9nUR[US
55 UR[S
U55 g)Nr�s456r�r_r9r�r/rrrrX)rkr�rr�rmr�)rfrar�s   rA�test_ndarray_cmp_contig�*TestBufferProtocol.test_ndarray_cmp_contig%s�������F�F�3�4��D��r��O�A�a�5�1���D��r��O�A�a�5�1������A�)�*��Q�C��s�3�/�����
�1�g�.�/����
�7�A�.�/rcc	�h�[R"S/SQ5n[U5nUR[[U5 [[
[S555n[[
[S55S/S9nUR[	U5[	U55 [[
[S55SS/S9nUR[	U5[	U55 [[
[S55/SQS9nUR[	U5[	U55 [[[
[S55SS/S95n[[
[S55SS/[S9nUR[	U5[	U55 [[[
[S55/S	QS95n[[
[S55/S	Q[S9nUR[	U5[	U55 [[
[S555n[[
[S55/S
Q[S9nUR[	U5[	U55 [[
[S55/S
QSS9nUR[	U5[	UR555 g)Nrr�r�r�r_r9)r_r#r#r��r#r_r#�r#r#r_rr)
rRrrzr��hashr[r�rmrxr�r�r�r2)rfrMr]rs    rA�test_ndarray_hash�$TestBufferProtocol.test_ndarray_hash1s����K�K��W�%��
�Q�Z�����*�d�B�/�
�$�u�R�y�/�"��
�T�%��)�_�R�D�
1������b��4��7�+��T�%��)�_�Q�q�E�
2������b��4��7�+�
�T�%��)�_�G�
4������b��4��7�+�
�)�D��r��O�A�a�5�9�:��
�T�%��)�_�Q�q�E��
D������b��4��7�+��)�D��r��O�7�;�<��
�T�%��)�_�G�:�
F������b��4��7�+�
�$�u�R�y�/�"��
�T�%��)�_�G�6�
B������b��4��7�+��T�%��)�_�G�C�
@������b��4��
�
��#5�6rcc���[[[[[[
[[[[[[4nUR[[0S[
5 [SSS[ S9nSH7nUH.n[X#U5nUR#XRR%55 M0 M9 [S/S/S[ S9nSH*nUH!n[X#U5nUR#US	5 M# M, [['[)S
55/SQS[ S9nSH*nUH!n[X#U5nUR#US	5 M# M, S[*4H�n[S/S/SU[ -S9nUR%5nSH)nUH n[X#U5nUR#XW5 M" M+ [/S
QS/SU[ -S9nUR%5nSH)nUH n[X#U5nUR#XW5 M" M+ M� [/S
QS/S/[ S9nUR%5nSH3n[[4H n[X#U5nUR#XW5 M" M5 USSS2nUR%5nSH*nUH!n[X#U5nUR#XW5 M# M, ['[)S55nS[*4GHn[USS/U[ -S9n[.(a[/[1U5SS/SUS:XaSOSS9n	U[*:Xa.[[3USS/5SS/[ S9n
U
R%5nOUR%5nUH�n[USU5nUR#X[5 [UVs/sHo�PM snSS/[ S9n
UR#[5U
5[5U55 [.(dMtUR#UW	R%SS95 M� US:Xa[[3USS/5SS/[ S9n
O[USS/[ S9n
U
R%5n[[
[[[4H�n[USU5nUR#X[5 [UVs/sHo�PM snSS/[*[ -S9n
UR#[5U
5[5U55 [.(dM{UR#UW	R%SS95 M� U[*:Xa"[USS/[ S9n
U
R%5nOUR%5n[[
[[[4H�n[USU5nUR#X[5 [UVs/sHo�PM snSS/U[ -S9n
UR#[5U
5[5U55 [.(dMwUR#UW	R%SS95 M� GM [['[)S55SS/[ [6-S9n[US[
5nUR#XRR%55 [UVs/sHo�PM snSS/[ S9n
UR#[5U
5[5U55 [US[
5n[[3USS/5SS/[ S9n
UR#XZR%55 [UVs/sHo�PM snSS/[*[ -S9n
UR#[5U
5[5U55 [US[
5nUR#XRR%55 [UVs/sHo�PM snSS/[ S9n
UR#[5U
5[5U55 g![,a GMf=f![,a GMYf=fs snf![,a GMyf=fs snf![,a GM�f=fs snfs snfs snfs snf)Nror�r�rrqrnr/rrcr9�r#rr:rr�r_rr#r�r�r�r9r�rr�)r&r�r'rurtrp)r�r�r�r�r�r�r�r�r�r�r�r�rzrVr�rr#rxr2r�rmr�r�r+r(r�rTr�)rfr�r]ru�requestrr�ndbytesrn�narar�r�r�s              rA�test_py_buffer_to_contiguous�/TestBufferProtocol.test_py_buffer_to_contiguousVs��
�M�8�\��
��+��+��/�
��	
���)�%<�b�#�'�	)��Q�b��K�
@��$�E�#��+�B�w�?��� � ��J�J�L�1�$�%��a�S���C�{�
C��$�E�#��+�B�w�?��� � ��C�(�$�%�
�T�%��(�^�9�S�&�(��$�E�#��+�B�w�?��� � ��C�(�$�%��Z��A��!��Q�C��1�[�=�I�B��j�j�l�G�(��'�G�/��7�C�A��$�$�Q�0� (�)�
��1�#�c��;��O�B��j�j�l�G�(��'�G�/��7�C�A��$�$�Q�0� (�)�!� �Y�q�c�A�3�k�
J���*�*�,��$�E�)�:�6��+�B�w�?��� � ��,�7�%�
��"��X���*�*�,��$�E�#���/��7�C�A�� � ��,�$�%�P�5��9�o���Z��A���Q��F�!�K�-�@�B��{� �	�#��()�1�v�S�./�1�f�s�#�?��
�J���I�c�A�q�6�2�1�a�&�"-�/���9�9�;���:�:�<��#���/��C��A�A�� � ��-���N��1�Q��N�1�a�&��L��� � ��A��
�2��?��;��$�$�Q��
�
��
�(=�>�$�"�A�v��I�c�A�q�6�2�1�a�&�"-�/���C��1�v�[�A���y�y�{�H�&�
�~�)�8�5���/��C��A�A�� � ��-���N��1�Q��N�1�a�&�
�;�@V�W��� � ��A��
�2��?��;��$�$�Q��
�
��
�(=�>�5�"�J���C��1�v�[�A���9�9�;���:�:�<��&�
�~�)�8�5���/��C��A�A�� � ��-�
��N��1�Q��N�1�a�&��+�
�N��� � ��A��
�2��?��;��$�$�Q��
�
��
�(=�>�!5�w!�\�T�%��)�_�Q��F�+�f�:L�
M��
$�B��]�;������J�J�L�)���N��1�Q��N�1�a�&��D������A��
�2��7�
$�B��]�;���I�c�A�q�6�*�1�a�&��L������I�I�K�(���N��1�Q��N�1�a�&�
�;�8N�O������A��
�2��7�
$�B��]�;������J�J�L�)���N��1�Q��N�1�a�&��D������A��
�2��7��M#�����l#�����+��"#�����+�� #�����+��#��#��#sl�;^�
^�3^%�
^*�*^<�8
_�_�6_�_�_"�
^�^�
^"�!^"�*
^9�8^9�
_�_c
��S/4/SQS/4[[S55/SQ4/nUGH�up#[X#S9n[U5nUR	UR
5 UR	UR5 [U5n[XcSS5n[X#5nURXTSS	S
XcUUS9	 [U5n	URX�SS	S
XcUUS9	 [U[[-S9n
URU
RS
5 U
R5nURUSSS	S
XcUUS9	 [U[ S9n
URU
R"S5 URU
R$S
5 URU
RS
5 U
R5nUS:XaU/OUnURUSSS	S
SUR&/SUS9	 GM� UH�up#[X#[(S9n[U5nUR	UR*5 UR	UR5 [U5n[XcSS5n[-X#5nURXTSS	S
XcUUS9	 [U5n	URX�SS	S
XcUUS9	 M� USSH}up#[X#[.S9n[U5n[U5n[X#5nURXTSS	S
XcURUS9	 [U5n	URX�SS	S
XcURUS9	 M UR1[2[SS5 UR1[2[05 [/SQS/S9n[U[ S9n
UR1[4[U
5 [U[[-S9n
UR1[4[U
5 [S/S-S/S-SS9n
UR1[6[U
5 UR1[6U
R5 UR1[6[8U
[:S5 UR1[6[8U
[:S5 UR1[6[8U
SSS2[:S5 g)Nr�r�r_r
r2r�r/r�rTrr�r�rCr�r/r�ro�9rar&rrrr�)r�rmrrTr�r�r�rhr�r�r�r�r�rxr�r�r�r!r�r0r�r�r�r�rzrVr�r�r�r�)rf�items_shaper|r�r}rKr�r�rnr�r]s           rA�test_memoryview_construction�/TestBufferProtocol.test_memoryview_constructionF	s���2�w��1�#���e�E�l�1C�W�0M�N��(�L�E���,�B��2��A��O�O�A�N�N�+��O�O�A�L�L�)��u�:�D�(��a��=�G���&�C��K�K��!"��d�!���
�
!��A��B��K�K��!"��d�!���
�
!���O�L�$@�A�B����R�Z�Z��,��)�)�+�A��K�K��t�!"��d�!���
�
!���L�1�B����R�Y�Y��+����R�X�X�r�*����R�Z�Z��,��)�)�+�A�!�Q�Y�5�'�E�C��K�K��t�!"��d��r�y�y�k�4��
�
!�S(�^(�L�E���:�>�B��2��A��O�O�A�N�N�+��O�O�A�L�L�)��u�:�D�(��a��=�G���&�C��K�K��!"��d�!���
�
!��A��B��K�K��!"��d�!���
�
!�'(�2(���O�L�E���6�:�B��2��A��u�:�D���&�C��K�K��!"��d�!��
�
��
�
!��A��B��K�K��!"��d�!��
�
��
�
!�!,�,	
���)�Z��s�;����)�Z��4�
�W�Q�C�
(��
�R��
-�����+�z�2�6�
�R��� <�
=�����+�z�2�6��a�S��W�Q�C��G�C�
8�����*�j�"�5����*�b�&?�&?�@����*�n�b�*�c�J����*�n�b�*�c�J����*�n�b��2��h�
�C�Prcc��/SQn/SQ/SQ/SQ4HSn[XS9nURUR5 [U5nUR	[
URS5 MU [SS5Hcun n[S5nUR
U5nURUR5S5 URUR5/5 Me g)	Nr�r�r�r�rr/rTrc)rr�r�rTrzrVrjr�rxr2rU)rfr|r�r}�msrcr>rzrKs        rA�test_memoryview_cast_zero_shape�2TestBufferProtocol.test_memoryview_cast_zero_shape�	s���
���w��0�E���,�B��O�O�B�O�O�,��b�>�D����i����C�8�	1�%�Q��5�I�C��A��c�?�D��	�	�#��A����Q�Y�Y�[�#�.����Q�X�X�Z��,�	6rcc�T�URn[RnSnSn[[	S55nU"[S5U"USU--55 [
USS/SS	9nU"[U5U"USU--55 [
U/S
QSS	9nU"[U5U"USU--55 g)NzPnin 2P2n2i5P P�3nr9rcr/r#r9rrr)r#r#r#r_)�check_sizeofr�calcvobjsizer�rmrTr)rf�check�vsize�base_struct�per_dimr|rMs       rA�test_memoryview_sizeof�)TestBufferProtocol.test_memoryview_sizeof�	s����!�!���$�$��'�����U�1�X���
�j��o�u�[�1�w�;�%>�?�@��E�!�Q���4��
�j��m�U�;��W��#<�=�>��E��3�7��
�j��m�U�;��W��#<�=�>rcc��"SS[5n"SS[5nSnU"S5U"S5S[S5S	[S
S5/SQ1S
kSS0SSSSS[SS[	S5[	S5SSSSUS/n[SS5H�upVn[
US/U[S9n[
US/U[S9n	[U5n
[R"XYSU5 XzS'URU
SU	S5 [R"U5nSU;aM�UHpnSn
[R"XYX�5 SnX�S'U
(dU(a&UR#U
S5 UR#US5 MXURU
SU	S5 Mr M� g![Ra [Rn
N�f=f![[4anUR nSnAN�SnAff=f)Nc� �\rSrSrSrSrSrg)�=TestBufferProtocol.test_memoryview_struct_module.<locals>.INTi�	c��Xlgr���val�rfr�s  rA�__init__�FTestBufferProtocol.test_memoryview_struct_module.<locals>.INT.__init__�	����rcc��UR$r�r�res rA�__int__�ETestBufferProtocol.test_memoryview_struct_module.<locals>.INT.__int__�	����x�x�rcr�N)�__name__�
__module__�__qualname__�__firstlineno__r�r��__static_attributes__r�rcrA�INTr��	���
�
 rcr�c� �\rSrSrSrSrSrg)�=TestBufferProtocol.test_memoryview_struct_module.<locals>.IDXi�	c��Xlgr�r�r�s  rAr��FTestBufferProtocol.test_memoryview_struct_module.<locals>.IDX.__init__�	r�rcc��UR$r�r�res rA�	__index__�GTestBufferProtocol.test_memoryview_struct_module.<locals>.IDX.__index__�	r�rcr�N)r�r�r�r�r�r�r�r�rcrA�IDXr��	r�rcr�c��g)Nr:r�r�rcrAr�;TestBufferProtocol.test_memoryview_struct_module.<locals>.f�	s��rcr�y������@@z-21.1gffffff(@r�r#r�>r9r�r:r:r9r�)r�TF�a�abcrM�abcc��U$r�r�)ras rA�<lambda>�BTestBufferProtocol.test_memoryview_struct_module.<locals>.<lambda>�	s��qrcrrrTrqrrr/)�objectr
r�Ellipsisr(r�rr#rTr;r*rxr�r=rVr�rJ�assertIsNot)rfr�r�r�valuesr>r|r}r}r]rKr�r��
struct_err�mv_errrs                rA�test_memoryview_struct_module�0TestBufferProtocol.test_memoryview_struct_module�	s���	 �&�	 �	 �&�	 �	��a�&�#�a�&��'�'�*�D�(�1�a�.��7�Q�q�E�2�t���t�X���	�$���6�1B��u�d�F��[�
"��!,�B�� =��C����r�d�3�k�J�B���r�d�3�k�J�B��2��A����S�a��.��a�D����Q�q�T�2�a�5�)����s�+�H��c�z����!�
�.��$�$�S�h�:���)��a�D����$�$�Z��6��$�$�V�T�2��$�$�Q�q�T�2�a�5�1�#�!>��"�|�|�.�!'���J�.��"�:�.�)��[�[�F��)�s*�F�,F/�$F,�+F,�/G�?G�Gc��[/SQS/S/S9nURUR5 [U5nUR	[
URS5 g)Nr�r_rr�r)rrkr�rTrzrVrj)rfr}r�s   rA�!test_memoryview_cast_zero_strides�4TestBufferProtocol.test_memoryview_cast_zero_strides
sG���W�Q�C�!��
5��������)��"�~�����)�T�Y�Y��4rcc	��[H�n[S5(aSU-OUn[R"U5n[H�n[S5(aSU-OUn[R"U5n[	[[
S55SU-/US9n[U5nUR[URUSU-/5 M� M� [S5H�upn
[	U	S/US9n[U5n[S5H�un n
[U5(d(UR[URUSW-/5 M?[U5(aMQ[U5(aMcUR[URUSW-/5 M� M� [R"S5n[R"S5n[	[[
SU-55SSU/SS9n[U5nUR[URSSU/SS9 [	[[
S	55/S
QS9n[U5n
UR[U
R5 UR[U
RSSS5 UR[U
R05 UR[U
RS
5 UR[U
RS5 UR[U
RS5 UR[U
RS5 UR[U
RS5 UR[U
RS5 UR[U
RS5 UR[U
RS5 UR[U
RS5 [	SS/S/SS9n[U5n
UR[U
R S5 UR[U
R"SS5 UR[U
R$5 [	[[
S	55/S
QS9n[U5n
UR[U
RS0S9 [	[[
S	55S	/S9n[U5n
UR[&U
RSS/S9 UR[U
RSS/S9 UR[U
RS/SQS9 UR[U
RS/SQS9 UR[U
RS/S QS9 [	[[
S!5V
s/sHn
S"PM sn
5/S#QS9n[U5n
UR[U
RS$/S%QS9 [	[[
S&55S&/S$S9n[U5n
UR[U
RS$S/S&-5 [	[[
S!5V
s/sHn
S"PM sn
5S!/S9n[U5n
UR[U
RS$/S%QS9 [	[[
S!5V
s/sHn
S"PM sn
5S!/S9n[U5n
UR[U
RS/S%QS9 [	[[
S&55S&/S$S9n[U5n[	[[
S&55S&/SS9n[U5n[(R*S':XamUR[URS/S(Q5 UR[URS/S)Q5 UR[URS$/S*Q5 gUR[URSSS+/5 UR[URS/S,Q5 UR[URS$/S-Q5 gs sn
fs sn
fs sn
f).Nr#rDr5rrr/rrr9�xr�r�r_�Xz@Xz@XYz=Bz!Lz<Pz>l�BI�xBIrr��IIrr9rr-r�)r#r_r9r�r:r:r�)r#r_r9r�r:r:r)r#r_r9r�r:r:rai�r�)r_r�r:r�r)r#r_r9r�r&l����)r:r:�Ir2iQiAji��	)�r��r�r9)r�r�r�r�r#��)r�r�r5r5r#)r�r�r5r9r#)�NON_BYTE_FORMATrr;r�rr�rmrTrzrVrjr�r�r�r�rWrrrUr�rZ�maxsize)rf�sfmt�sformat�ssize�dfmt�dformat�dsizer}r��sitemsrz�size_h�size_drKr]r�r�s                 rA�test_memoryview_cast_invalid�/TestBufferProtocol.test_memoryview_cast_invalid
s[��#�D�$-�a�L�L�c�D�j�d�G��O�O�G�,�E�'��(1�!���#��*�$������0���T�%��)�_�R��Y�K��P��!�"�~���!�!�)�T�Y�Y��r�5�y�k�J�(�$� +�1�~�O�D�!����s�4�8�B��b�>�D�)�!�n�
��a��+�D�1�1��%�%�j�$�)�)�T�')�5�y�k�3�*�$�/�/��t�8L�8L��)�)�)�T�Y�Y��+-�u�9�+�7�
-� .�����%������%��
�T�%��F�
�+�,�Q�q��L��
M���"�~�����)�T�Y�Y�q��6�l�3��O�
�T�%��*�%�[�
9���r�N��	
���)�Q�V�V�,����)�Q�V�V�Q��1�5�	
���)�Q�V�V�R�0�	
���*�a�f�f�c�2����*�a�f�f�d�3����*�a�f�f�e�4�	
���*�a�f�f�d�3����*�a�f�f�d�3����*�a�f�f�d�3����*�a�f�f�d�3����*�a�f�f�d�3����*�a�f�f�e�4��e�U�^�A�3�t�
<���r�N�����-�q�}�}�a�@����-�q�}�}�a��C����-�q�x�x�8��T�%��*�%�[�
9���r�N�����)�Q�V�V�S���;��T�%��*�%�g�Y�
7���r�N�����-�����U�G��D����*�a�f�f�c�"���>����*�a�f�f�c�9I��J����*�a�f�f�c���I����)�Q�V�V�S�8I��J��T�e�H�o�6�o��1�o�6�7�z�
J���r�N�����)�Q�V�V�S�	��B��T�%��*�%�c�U�3�
?���r�N�����*�a�f�f�c�A�3�s�7�;��T�e�H�o�6�o��1�o�6�7��z�
J���r�N�����)�Q�V�V�S�	��B��T�e�H�o�6�o��1�o�6�7��z�
J���r�N�����)�Q�V�V�S�	��B��T�%��*�%�c�U�3�
?��
��^��
�T�%��*�%�c�U�3�
?��
��^���;�;�'�!����i����#�A�
C����j�"�'�'�3�@�
B����j�"�'�'�3�@�
B�
���i����#� �*�o�
/����j�"�'�'�3�>�
@����j�"�'�'�3�>�
@��I7��7��
7s�*_4�_9�0_>c
�^^�SS4SS4SS44mUU4Sjn[R"S5n[S	/SS
9n[USS5upE[	U5nURS5nTR
XsSSSSUS
USS9
 [R"S5n[S	/U-U/SS
9n[USU/S9upE[	U5nURS/S9nTR
XsUSSSSSUSS9
 [SS5H0up�n[R"X�5n[	U5nU"X6X�5 M2 [SS5H+up�n[U
S/U	[S9n[	U5nU"X6X�5 M- g)Nrc�4�[UR55$r��r�r2)r}s rAr��9TestBufferProtocol.test_memoryview_cast.<locals>.<lambda>�
s��4��
�
��-rcrc�t�[UR55Vs/sHoS:�aUS-
OUPM sn$s snf)Nr2r%r�r}ras  rAr�r�
s0��T�"�*�*�,�=O�P�=O���W�A�c�E�!�3�=O�P��Ps�5rc��[UR55Vs/sHn[[U5S5PM sn$s snf)Nzlatin-1)r�r2r[�chrr	s  rAr�r�
s.��d�2�:�:�<�>P�Q�>P��E�#�a�&�)�4�>P�Q��Qs�>c�D>�[R"U5nT
H�upVURU5nU"U5nTRXpSUSSSU-/SUSS9
 URU5n	TR	X�5 UR5nTRX�XCSSS/U4USS9
 M� g)Nr/Fr6r�T�	r`r�r>ryr�r�r�rnrj)r;r�rjr�rxrU)r}rKr|r>�srcsizerU�to_bytelistr�rn�m3�bytespecrfs          ��rA�iter_roundtrip�?TestBufferProtocol.test_memoryview_cast.<locals>.iter_roundtrip�
s�����o�o�c�*�G�(0�$���V�V�G�_��!�"�o�����B�%&�G�e�!"�2�g�:�,�� #�$��0�
�W�W�S�\��� � ��(��i�i�k�����B�%,��!"�2�$��
� #�$��0�)1rcrr�rrr/Tr�r
r�rr�r6rRrTrq)
r;r�rr7rTrjr�r�rRr#)
rfrrr}�	destitems�	destshaperKr��destsizer>r|rzrs
`           @rA�test_memoryview_cast�'TestBufferProtocol.test_memoryview_cast�
s�����-�
.��P�
Q��Q�
R�
��	0�(�/�/�#�&��
�Q�b��
-��)�"�c�1�5��	��r�N��
�V�V�C�[�����B��C�$��)�T�!��	�	.��?�?�3�'��
�a�S��\�(��C�
@��)�"�c�8�2�F��	��r�N��
�V�V�C�r�V�
"�����B�%�3���"�b�!��	�	.�)��W�5�M�C�����S�(�B��2��A��2�%�-�6�)��\�:�M�C����r�d�3�k�J�B��2��A��2�%�-�;rcc���[5GH�n[SGH�nUS:XaMS[S5U-n[R"U5n[U5U-n[
U5(aSOSn[XV5GHHupxn	[R"U5n
US:�aU/O/nX/-n[X�US9n
[U
5n[X�XLS	9up�Uc#UR[URX<5 MtUS
:XaM|[X�US9nURX<S	9n[U5nURnUR!5nUR#UU
XCSUUUUSS9
 URU5nURX{S	9n[U5nU
RnU
R!5nUR#UU
X�SUUUUSS9
 UR#UU
X�SUUUUSS9
 GMK GM� GM� [$(Ga"S
S[$R&5nU"SS5n[U5nURS5nUR)UR*U5 UR)UR,S5 UR/UR0S5 UR)UR2S5 UR)UR4UR645 UR)URS5 UR)UR8S5 [$R:"S5n[U5nURS5nUR)UR*U5 UR)UR,S5 UR/UR0S5 UR)UR2S5 UR)UR4UR645 UR)URS5 UR)UR8S5 gg)NrDr)rCrDr#rTrUrrrr�r/Tr
c�L�\rSrSrS\R
4S\R4/rSrg)�>TestBufferProtocol.test_memoryview_cast_1D_ND.<locals>.BEPointi	rar�r�N)	r�r�r�r��ctypes�c_long�c_double�_fields_r�r�rcrA�BEPointr	s�� �&�-�-�0�3����2H�I�rcr r�g33333i@rr/Fr�r��333333�?r)r;rZrr;r�r�r�r�rrTr7rzrVrjrhr�rUr�r�BigEndianStructurerxr`r�rwryr�r�r0rYr)rf�_tshaper_�tfmt�tsizerr`r>r|rz�sizer��tshaper}rK�titemsr]r�r�r�rnr�m4r �pointr�ras                           rA�test_memoryview_cast_1D_ND�-TestBufferProtocol.test_memoryview_cast_1D_ND�
sc��%��G������3�;�� ��1��.��5������-����M�E�)��&4�T�&:�&:�l�	��%0��%8�M�C��!�?�?�3�/�D�#$�q�5�Q�C�b�E�$�v�-�F� ��C�@�B�"�2��A�%/��%�%N�N�F��~��)�)�)�Q�V�V�T�J� ���� �!��d�C�B������3�B��v�;�D� �j�j�G��)�)�+�C��K�K���).�4�%)���$'�d� �4������B������2�B��u�:�D� �j�j�G��)�)�+�C��K�K���)-��%)���$'�d� �4�
�K�K���)-��%)���$'�d� �4�Q&9�%�'�n�6�
J�&�3�3�
J��C��'�E��E�"�B������B����R�V�V�U�+����R�[�[�!�,��M�M�"�+�+�u�-����R�W�W�a�(����R�X�X��	�	�|�4����R�Z�Z��.����R�]�]�B�/�����$�A��A��B������B����R�V�V�Q�'����R�[�[�!�,��M�M�"�+�+�u�-����R�W�W�a�(����R�X�X��	�	�|�4����R�Z�Z��.����R�]�]�B�/�1rcc	��[R"S[[SS555n[U5nUR	X!5 UR	UR5UR55 USSS2nUSSS2nUR	X!5 UR	UR5UR55 [
[[S55/SQSS	9n[U5nUR	UR5UR55 [
S
S/S/SS	9n[U5nUR[UR
5 [
S
/S/SS	9n[U5nUR[UR
5 [
/SQSS/SS	9n[U5nUR[UR
5 g)Nrr(r:r#r_i	)r�r#r:r_r�rrr)r#r�)r:r�r?�12345r/r�)r��b�c�d�e�f)	rRr�rmrTrxrUrrzrW)rfrMrKr}s    rA�test_memoryview_tolist�)TestBufferProtocol.test_memoryview_tolist!sk��
�K�K��T�%��A�,�/�0���q�M��������������Q�X�X�Z�0�
�a�d��d�G��
�a�d��d�G��������������Q�X�X�Z�0�
�T�%�
�+�,�L��
M���r�N���������R�Y�Y�[�1�
�f�g�&�q�c�$�
?���r�N�����-�q�x�x�8�
�h�Z��s�3�
7���r�N�����-�q�x�x�8�
�4�Q�q�E�#�
N���r�N�����-�q�x�x�8rcc��[[S55nUR5nURUR	S55 UR5 UR5nURUR	S55 g)Nr�z<memoryz	<released)rTr(�__repr__r��
startswithr�)rfrKr�s   rA�test_memoryview_repr�'TestBufferProtocol.test_memoryview_repr?sY���y��|�$��
�J�J�L��������Y�/�0�	�	�	��
�J�J�L��������[�1�2rcc�V�SHin[S5n[R"USUS/5n[U5nURSU5 URSU5 URSU5 Mk [	S/SS9n[U5nUR[[S[55 g)	N)rrg���?g@g"@rr�z9.0 in m)	�floatrRrT�assertInrrzrVr7r8)rfr>�infr}rKs     rA�test_memoryview_sequence�+TestBufferProtocol.test_memoryview_sequenceHs����C���,�C����S�3��S�/�2�B��2��A��M�M�#�q�!��M�M�%��#��M�M�#�q�!�
��S�"�S�
)���r�N�����)�T�:�v�x�@rcc#��# �UR[5nSv� SSS5 UR[WR5SU4-5 g!,(df   N8=f7f)Nz#index out of bounds on dimension %d)rzrrx�str�	exception)rf�dim�cms   rA�assert_out_of_bounds_error�-TestBufferProtocol.assert_out_of_bounds_errorVsI���
�
�
�z�
*�b��+�����R�\�\�*�>�#��G�	I�+�
*�s�A �A�2A �
A�A c��[S/SS9n[U5nURUSS5 URUSU5 URUSU5 UR[UR
S5 [S/SS9n[U5nUR[UR
S5 [[[S	55S	/[S
9n[U5nUR[UR
S5 UR[UR
S5 UR[UR
S
5 UR[UR
S5 UR[UR
S5 [[[S55SS/[S
9n[U5nURUSS5 URUSS5 URUSS5 URUSS5 URUSS5 SH!nURSS9 X#S4 SSS5 M# SH"nURSS9 USU4 SSS5 M$ UR[UR
S5 UR[UR
S5 UR[UR
S 5 UR[UR
S!5 UR[UR
S5 UR[UR
S5 g!,(df   GM$=f!,(df   GM=f)"N�)@rrrr�.rr��iiir:r�r-�@����r9r�r_r9�rr)r#rr�r��r�r�)r�r��r_r�r/�rE�r9rr#�r-rr,�rrr�rMrM)rrTrxrzrVrrWr�rmr#rrG)rfr}rK�indexs    rA�test_memoryview_index�(TestBufferProtocol.test_memoryview_index]s����T��C�
0���r�N������2���%�����3���#�����3���$����)�Q�]�]�A�6�
�W�B�u�
5���r�N�����-�q�}�}�b�A��T�%��(�^�A�3�k�
B���r�N�����*�a�m�m�U�;����)�Q�]�]�C�8����)�Q�]�]�C�8�	
���*�a�m�m�R�8����*�a�m�m�Q�7��T�%��)�_�Q�q�E��
E���r�N������4��!�$�����4��!�$�����4��"�%�����6��B�'�����6��A�&��E��0�0�Q�0�7���(��8�7���E��0�0�Q�0�7��!�U�(��8�7��	
���*�a�m�m�Z�@����*�a�m�m�Z�@����)�Q�]�]�I�>����)�Q�]�]�J�?�	
���-�q�}�}�b�A����-�q�}�}�a�@�8�7��8�7�s�+L-�M�-
L=	�
M	c��[S/S[S9n[U5nSUS'URUSS5 SUS'URUSS5 UR	[
URSS	5 [[[S
55S
/S9n[U5nUR	[
URSS
5 [[[S
55S
/[S9n[U5nUR	[URSS5 UR	[
URSS
5 UR	[
URSS5 UR	[URSS5 UR	[URSS5 [SHinUS:XdUS:XaM[/SQS/U[S9n[U5n[SS5nSX$'URX$S5 URX$X5 Mk [/SQS/S[S9n[U5nSUS'URUSS5 [/S QS/S[S9n[U5nS!US"'URUS"S!5 [S#/S"/S[S9n[U5nUR	[
URSS$5 [[[S%55/S&Q[S9n[U5n[SR5H�up7US:XaM
US:XaMURU5nUup�US':XdUS:Xa
SS(-*SS(-p�US):waGUR	[URSU	S"-
5 UR	[
URSS*5 UR	[URSU
5 M� URS5nUR	[URSS+5 [[[S"55S"/S,[S9n[U5nUR	[ URSS"5 [S-/S"/S.[S9n[U5nUR	[ URSS"5 [[[S/55SS0/[S9n[U5nS1US2'URUSS"S15 S3US4'URUSSS35 S5H!nUR#S"S69 SX+S4'SSS5 M# S7H"nUR#SS69 SUSU4'SSS5 M$ UR	[URS8S5 UR	[URS9S5 UR	[
URS:S5 UR	[
URS;S5 UR	[ URSSS/5 g!,(df   GM
=f!,(df   M�=f)<NrJrrqg�6@r�g�7@.rg33333�8@r:r�r#rrr�r-r�rLrMr�rNr�r9�rDrrr�r_r�)�1�2�3r�)TFTTr/�xr�r�r�rr�rr�s���xLr.r�r�r9�*)rr/�+rPrQrRrSrTr,rUrV)rr#rTrxrzrVrr�rmrrZrrwr|rjr�rWrG)rfr}rKr>rr]r��_ranger��lo�hirWs            rA�test_memoryview_assign�)TestBufferProtocol.test_memoryview_assign�s/���T��C�{�
C���r�N����"������2���%���#������2���%����)�Q�]�]�A�t�<��T�%��(�^�A�3�
/���r�N�����)�Q�]�]�A�r�:��T�%��(�^�A�3�k�
B���r�N�����*�a�m�m�U�A�>����)�Q�]�]�C��<����)�Q�]�]�C��<�	
���*�a�m�m�R��<����*�a�m�m�Q��;��3�<�C��c�z�S�C�Z������C�{�K�B��2��A��"�a� �A��A�D����Q�T�1�%����Q�T�2�5�)� ��'��s�3�&�(���r�N����!������1��t�$�
�(���C�&�(���r�N����!���
�
�a��d�D�!��d�V�A�3�s�+�
F���r�N�����)�Q�]�]�A�s�;�
�T�%��*�%�[��
L��
��^��"�3�<�-�-�/�K�C��s�
���c�z�������B��F�B��c�z�S�C�Z��T�'��1�d�7�B��c�z��!�!�*�b�n�n�a��A��F��!�!�)�R�^�^�Q��F����j�"�.�.�!�R�@�0��W�W�S�\�����*�b�n�n�a��E��T�%��(�^�A�3�t�;�
O���r�N�����-�q�}�}�a��C�
�h�Z��s�3�k�
J���r�N�����-�q�}�}�a��C��T�%��)�_�Q�q�E��
E���r�N����#������A��q��2�&���%������A��q��2�&��E��0�0�Q�0�7����(��8�7���E��0�0�Q�0�7���!�U�(��8�7��	
���*�a�m�m�Z��C����*�a�m�m�Z��C����)�Q�]�]�I�q�A����)�Q�]�]�J��B�	
���-�q�}�}�a�!�Q��H�8�7��8�7�s�.W�W)�
W&	�)
W8	c
�l�[[[S55S/[S9n[	U5nUR[UR[SSS55 UR[UR[SSS5[SS/55 UR[URS5 [[[S55S/[S9n[	U5nUR[UR[SSS5[SSS545 UR[UR[SSS5[SSS54[SS/55 UR[UR[SSS5045 UR[UR[SSS504[SS/55 UR[UR[SSS5S/5 S[4GH4n[[[S55S/S/S[U-S	9n[[[S
55S/S/US9n[	U5n[	U5nUSSUSS&USSUSS&URXd5 URXu5 USSSSS2USS
SSS2'USSSSS2USS
SSS2'URXd5 URXu5 USSS2SSS2USSS2SSS2'USSS2SSS2USSS2SSS2'URXd5 URXu5 GM7 g)Nr�r�rr#r/r�r�r�)r�r�r�r"�r�r�r_r9r�)rr�rmr#rTrzr�rrrr(rWrVr�rx)rfr}rKr"r�r�r�r�s        rA�test_memoryview_slice�(TestBufferProtocol.test_memoryview_slice�s���
�T�%��)�_�R�D��
D���r�N��	
���*�a�m�m�U�1�Q�q�\�B����*�a�m�m�U�1�Q�q�\�#�Q�q�E�*�	,�	
���-�q�}�}�b�A��T�%��)�_�R�D��
D���r�N�����-�q�}�}� ��1�Q�<��q��1��6�	8����-�q�}�}� ��1�Q�<��q��1��6�	�1�Q�%�8H�	J�	
���)�Q�]�]�U�1�Q�q�\�2�4F�G����)�Q�]�]�U�1�Q�q�\�2�4F�#�Q�q�E�*�	,�	
���)�Q�]�]�E�!�A�a�L�1�#�F���[�E��$�u�R�y�/�"���t�B� +�E� 1�3�C��$�u�R�y�/�"���s�%�P�C��C��B��C��B��1�Q�x�C��!�H���1�g�B�q��G����R�%����R�%� ��1�X�c��c�]�C��!�H�T�r�T�N��q��G�C�a�C�L�B�q��G�D�b�D�M����R�%����R�%� #�A�a��E�
�3�Q�3��C��!�B��K��"���!�!�A�a�%�y��1��~�B�q��2�v�J�t��t�����R�%����R�%�/!rcc��Sn[SS5GHn[US5GH�up4n[U5GH�n[U5GH�n[R"X45n[R"X45n	[	U	5n
URX�5 URU
R
5UR
55 URU
R5UR55 UR[U
5[U55 U"XX�U5 SnSnX�n
X�nX�X�'[U
5[U5:gnSnX�X�'U(aURU[5 GM)U(dU(aURUU5 GMLURX�5 URU
R
5UR
55 URU
R5UR55 U"XX�U5 GM� GM� GM� GM g![anURnSnAN�SnAff=f![anURnSnAGNSnAff=f)Nc�V�[U5H�upVXnX5nURXx5 XAU'XG:wa#URX5 URX5 O"URX5 URX5 XCU'URX5 URX#5 XqU'X�U'M� gr�)r)rx�assertNotEqual)	�testcaserMrrK�
singleitemrrz�ai�mis	         rA�cmptest�9TestBufferProtocol.test_memoryview_array.<locals>.cmptest9s���!�!�����T���T���$�$�R�,�!�!���#��+�+�A�1��+�+�A�1��(�(��.��(�(��.�!�!���$�$�Q�*��$�$�Q�*��!���!��%rcr/r�rR)
rmr�r=rRrTrxrUr2rhrIrJrwr�)rfrsrr>r|rprTrCrMrrK�	array_err�have_resize�al�arr�m_errs                 rA�test_memoryview_array�(TestBufferProtocol.test_memoryview_array7s���	�$�q�!��A�*5�a��*A�&��J�'��l�F�"+�A�,��!�K�K��3��!�K�K��3��&�q�M���(�(��.��(�(�����Q�X�X�Z�@��(�(�����a�i�i�k�B��(�(��Q���Q��8����z�:�$(�	�&*��4�!"��B�!"��B�()�	�A�I�*-�b�'�S��W�*<�K�!%��0�()�	�A�I�'� �M�M�%��<�"�i� �M�M�%��;� �,�,�Q�2� �,�,�Q�X�X�Z�����D� �,�,�Q�Y�Y�[�!�)�)�+�F�#�D�Q�:�>�K#/�+�+B���. )�4�()���I��4�� )�0�$%�K�K�E��0�s0�%H�H<�
H9�#H4�4H9�<
I�I�Ic�L�[R"S/SQ5n[R"S/SQ5n[U5n[U5nSHMnUR[X55"U5[5 UR[X5"U5[5 MO [U5nUR5 UR
X35 URX15 URX5 [U5n[U5nUR5 URX45 URXC5 [U5nURU/SQ5 [S/S/S[S9nS	[S
54US'UR[U5U5 [(a�"SS
[R5nU"SS5n[U5n[U5nURX5 URX5 URX�5 UR[UR5 gg)Nrr�)r/r#r:)�__lt__�__le__�__gt__�__ge__rOr/zl x d xrqr�r/rc�L�\rSrSrS\R
4S\R
4/rSrg)�ITestBufferProtocol.test_memoryview_compare_special_cases.<locals>.BEPointi�rar�r�N�r�r�r�r�rrrr�r�rcrAr r����� �&�-�-�0�3��
�
�2F�G�rcr r�r)rRrTrw�getattrr*r�rxrnrr#r=rr"rzrWrU)	rfrMrr��w�attrr]r r*s	         rA�%test_memoryview_compare_special_cases�8TestBufferProtocol.test_memoryview_compare_special_casesus����K�K��Y�'���K�K��Y�'��
�q�M���q�M��<�D��M�M�'�!�*�1�-�~�>��M�M�'�!�*�1�-�~�>�=�

�q�M��	�	�	����������A�!����A�!��q�M���q�M��	�	�	�����A�!����A�!�
�q�M�����A�y�)��f�X�a�S��+�
N���U�5�\�"��1�����J�r�N�B�/��6�
H�&�3�3�
H��C��%�E��5�!�A��5�!�A�����%�����)�����)����1�1�8�8�<�rc)�categoryc��[R"SS5n[U5nURX5 URX!5 g)N�ur�)rRrTrn)rfrMr�s   rA�<test_memoryview_compare_special_cases_deprecated_u_type_code�OTestBufferProtocol.test_memoryview_compare_special_cases_deprecated_u_type_code�s9��
�K�K��U�#���q�M�����A�!����A�!rcc��[S/SS9n[S/S[S9n[U5n[U5nURX45 URXC5 URX25 URX#5 URXA5 URX5 UR	URU55 UR	URU55 SUS'UR
X45 UR
XC5 UR
X25 UR
X#5 UR
XA5 UR
X5 UR	URU55 UR	URU55 [[[S55S/[[-S	9n[[[S55S/[[-S	9n[U5nURXu5 S
US'UR
Xu5 [S/S
S9n[S/S[S9n[U5n[U5nURX45 URXC5 URX25 URX#5 URXA5 URX5 [S/S
S9n[S/S[S9n[U5n[U5nUR
X45 UR
XC5 UR
X25 UR
X#5 UR
XA5 UR
X5 URX15 URXB5 g)N��@Lrrrrqi�r�r�r�r�r�)r�r!r.�Lf5s�hf5s)i?���r!r.)rr#rTrxrk�__ne__rnr)r�rmr�)rf�nd1�nd2r�r�r]r}rKs        rA�!test_memoryview_compare_ndim_zero�4TestBufferProtocol.test_memoryview_compare_ndim_zero�s����d�"�T�2���d�"�S��D���s�O���s�O���������������� ����� ����� ����� �������!��%�������!��%���"�����A�!����A�!����A�#����C�#����A�#����C�#�������!��%�������!��%�
�T�%��)�_�R�D��F�8J�
K��
�T�%��)�_�R�D��F�8J�
K���r�N���������!�����A�"��+�2�f�E���+�2�f�'�)���s�O���s�O���������������� ����� ����� ����� ��+�2�f�E���,�B�v�'�)���s�O���s�O�����A�!����A�!����A�#����C�#����A�#����C�#����� ����� rcc���[/SQS/SS9n[/SQS/SS9n[U5n[U5nURX15 URXB5 URX25 URXA5 URX45 [/SQS/SS9n[/SQS/SS9n[U5n[U5nURX15 URXB5 URX25 URXA5 URX45 [/SQS	/SS9n[/SQS/SS9n[U5n[U5nURX2SSS
25 URUSSS
2U5 URX4SSS
25 URUSSS2USSS25 [/SQS	/S
S9n[/SQS/SS9n[U5n[U5nURX2SSS
25 URUSSS
2U5 URX4SSS
25 URUSSS2USSS25 [/SQS	/SS9n[/SQS/S[S9n[U5n[U5nURX2SSS
25 URUSSS
2U5 URX4SSS
25 URUSSS2USSS25 [/SQS	/SS9n[/SQS/S[S9n[U5n[U5nURX2SSS
25 URUSSS
2U5 URX4SSS
25 URUSSS2USSS25 g)N�����@�����'���r��@hrr)r�r�r�r�i�z<iz>h)r�r�r�r_r#r�r�z!hz<lrqzh  0cz>  h)rrTrxrnr��rfr�r�r�r�s     rA� test_memoryview_compare_ndim_one�3TestBufferProtocol.test_memoryview_compare_ndim_one�sl���2�1�#�d�K���1�!��T�J���s�O���s�O������ ����� ����A�#����A�#����A�!��2�1�#�d�K���1�!��T�J���s�O���s�O������ ����� ����A�#����A�#����A�!��(���D�A���2�1�#�d�K���s�O���s�O�������!��H�%�����3�Q�3���%�����c��c�F�#�����4�R�4��!�D�b�D�'�*��(���D�A���2�1�#�d�K���s�O���s�O�������!��H�%�����3�Q�3���%�����c��c�F�#�����4�R�4��!�D�b�D�'�*��(���D�A���2�1�#�d�"�$���s�O���s�O�������!��H�%�����3�Q�3���%�����c��c�F�#�����4�R�4��!�D�b�D�'�*��(���G�D���2�1�#�f�"�$���s�O���s�O�������!��H�%�����3�Q�3���%�����c��c�F�#�����4�R�4��!�D�b�D�'�*rcc� �[SS/S/SS9n[SS/S/SS9n[U5n[U5nURX15 URXB5 URX25 URXA5 URX45 [SS/S/SS9n[SS/S/S	S9n[U5n[U5nURX15 URXB5 URX25 URXA5 URX45 g)
N�r�rr�rri|���i?���z= h0cz@   i�rrTrxr�s     rA�"test_memoryview_compare_zero_shape�5TestBufferProtocol.test_memoryview_compare_zero_shape4
s���s�C�j���D�9���t�T�l�1�#�d�;���s�O���s�O������ ����� ����� ����� �������s�C�j���G�<���t�T�l�1�#�g�>���s�O���s�O������ ����� ����� ����� �����rcc�(�[/SQS/SS9n[S/S/S/SS9n[U5n[U5nURX15 URXB5 URX25 URXA5 URX45 [S	/S-S/S
S9n[S	/S/S/SS9n[U5n[U5nURX15 URXB5 URX25 URXA5 URX45 g)N)r�r�r�r�r9r�rrr�rrr�)r�r�z@ Liz!L  hr�r�s     rA�$test_memoryview_compare_zero_strides�7TestBufferProtocol.test_memoryview_compare_zero_stridesN
s	���*�1�#�d�C���s�e�A�3���C�@���s�O���s�O������ ����� ����� ����� �������z�l�1�n�Q�C��?���z�l�1�#��s�7�K���s�O���s�O������ ����� ����� ����� �����rcc	��Sn[SHnn[USSU5up4nS[4HNn[XA/X6S9n[	U5nURX�5 USSS2n[	U5nURX�5 MP Mp Sn[
S5Hkn	[U5up4nS[4HNn[XA/X6S9n[	U5nURX�5 USSS2n[	U5nURX�5 MP Mm g)	NrrrLrTrDrrqr�r�)rZr�r�rrTrxrm)
rfrr_r>r|rpr"r]rKrzs
          rA�&test_memoryview_compare_random_formats�9TestBufferProtocol.test_memoryview_compare_random_formatsh
s���
���D�M�D�%.�q�,��T�%J�"�C�
��V����U�#�c�G���r�N��� � ��'���"��X���r�N��� � ��'�%�"�
���s��A�%.�q�\�"�C�
��V����U�#�c�G���r�N��� � ��'���"��X���r�N��� � ��'�%�rcc�2�[[[SS55/SQSS9n[[[SS55/SQSS9n[U5n[U5nUR	X15 UR	XB5 URX25 URXA5 URX45 [S/S-/SQS	S9n[S
/S-/SQSS9n[U5n[U5nUR	X15 UR	XB5 URX25 URXA5 URX45 [[[S55/SQS
S9n[[[S55/SQS
S9n[U5n[U5nUR	X15 UR	XB5 URX25 URXA5 URX45 [S/S-SS/SS9n[S/S-SS/SS9n[U5n[U5nUR	X15 UR	XB5 URX25 URXA5 URX45 [[[S55/SQS
S9n[[[S55/SQSS9n[U5n[U5nUR	X15 UR	XB5 UR	X25 UR	XA5 UR	X45 g)N��r8�r_r#r�r�rrrr
�rr/r#z=f q xxL)g333333�r/r#z< f 2Qr2r�r_r:z! b B xLz
= Qx l xxLr�rr�rmrTrxrnr�s     rA�"test_memoryview_compare_multidim_c�5TestBufferProtocol.test_memoryview_compare_multidim_c�
s����d�5��b�>�*�)�D�I���d�5��B�<�(�	�$�G���s�O���s�O������ ����� ����A�#����A�#����A�!��y�k�"�n�I�j�I���|�n�R�'�y��J���s�O���s�O������ ����� ����A�#����A�#����A�!��d�5��9�o�Y�s�C���d�5��9�o�Y�s�C���s�O���s�O������ ����� ����A�#����A�#����A�!��y�k�"�n�Q��F�:�F���y�k�"�n�Q��F�<�H���s�O���s�O������ ����� ����A�#����A�#����A�!��d�5��9�o�Y�s�C���d�5��9�o�Y�s�C���s�O���s�O������ ����� ����� ����� �����rcc���[[[SS55/SQS[S9n[[[SS55/SQS[S9n[	U5n[	U5nURX15 URXB5 UR
X25 UR
XA5 UR
X45 [S/S	-S
S/S[S9n[S
/S	-S
S/S[S9n[	U5n[	U5nURX15 URXB5 UR
X25 UR
XA5 UR
X45 [[[SS55/SQS[S9n[[[SS55/SQS[S9n[	U5n[	U5nURX15 URXB5 UR
X25 UR
XA5 UR
X45 [[[SS55/SQS[S9n[[[SS55/SQS[S9n[	U5n[	U5nURX15 URXB5 UR
X25 UR
XA5 UR
X45 [[[S55/SQS[S9n[[[S55/SQS[S9n[	U5n[	U5nURX15 URXB5 URX25 URXA5 URX45 g)Nr�r8)r�r#r_r�rqrr
�r r�r:r#r_�=Qq)r�r z=qQr2rr��0llrN)rr�rmr�rTrxrnr�s     rA�(test_memoryview_compare_multidim_fortran�;TestBufferProtocol.test_memoryview_compare_multidim_fortran�
s����d�5��b�>�*�)�D�&�(���d�5��B�<�(�	�$�&�(���s�O���s�O������ ����� ����A�#����A�#����A�!��}�o�a�'��1�v�e�&�(���}�o�a�'��1�v�e�&�(���s�O���s�O������ ����� ����A�#����A�#����A�!��d�5��b�>�*�)�C�&�(���d�5��b�>�*�)�C�&�(���s�O���s�O������ ����� ����A�#����A�#����A�!��d�5��b�>�*�)�E�&�(���d�5��b�>�*�)�C�&�(���s�O���s�O������ ����� ����A�#����A�#����A�!��d�5��9�o�Y�t�&�(���d�5��9�o�Y�t�&�(���s�O���s�O������ ����� ����� ����� �����rcc�>	�[[SS55n[U/SQ5n[U/SQSS9n[U/SQS[S9n[U5n[U5nUR
XS5 UR
Xd5 UR
XV5 S/S	-nS
US'[U/SQ5n[U/SQSS9n[U/SQS
[S9n[U5n[U5nUR
XS5 UR
Xd5 UR
XV5 [[[S55SS/SS9nUSSS2SSS24n[[[S55SS/SS9nUSSS2SSS24n[U5n[U5nUR
XS5 UR
Xd5 URXT5 URXc5 URXV5 [S/S-SS/SS9nUSSS2SSS24n[S/S-SS/SS9nUSSS2SSS24n[U5n[U5nUR
XS5 UR
Xd5 UR
XT5 UR
Xc5 UR
XV5 [[[S	55/SQSS9nUSS2SSS24n[[[S	55/SQSS9nUSS2SSS24n[U5n[U5nUR
XS5 UR
Xd5 URXT5 URXc5 URXV5 [[[S	55/SQSS9nUSS2SSS24n[[[S	55/SQSS9nUSS2SSS24n[U5n[U5nUR
XS5 UR
Xd5 URXT5 URXc5 URXV5 [S/S	-/S QS!S9nUSS2SSS24n[S/S	-/S QS"S9nUSS2SSS24n[U5n[U5nUR
XS5 UR
Xd5 URXT5 URXc5 URXV5 g)#Nr�r8r��@lrrrrq)gffffff
����r_r
)g�������r�r_r�zd b czd h c�(r9�@Ir_r/r�r�r)r�r(�r�r#z=iiz>iir2rr)r#r��r�r_r#�b3s�i3s)r�rmr�rr�rTrxrn)	rf�lst1�lst2r�r�r�r�r�r�s	         rA�&test_memoryview_compare_multidim_mixed�9TestBufferProtocol.test_memoryview_compare_multidim_mixed
s����E�#�r�N�#����y�)���d�)�D�9���d�)�C�z�J���s�O���s�O������ ����� ������"�"�2�%��#��Q����y�)���d�)�G�<���d�)�G�:�N���s�O���s�O������ ����� �������d�5��9�o�a��V�D�A���!�A�b�&�$�B�$�,����d�5��9�o�a��V�C�@���!�A�a�%��2��+����s�O���s�O������ ����� ����A�#����A�#����A�!��(�)�"�,�R��G�E�J���!�A�b�&�$�B�$�,����(�)�"�,�R��G�E�J���!�A�a�%��2��+����s�O���s�O������ ����� ����� ����� �������d�5��9�o�Y�s�C���!�A�$��"��*�o���d�5��9�o�Y�s�C���!�A�$��"��*�o���s�O���s�O������ ����� ����A�#����A�#����A�!��d�5��9�o�Y�s�C���!�A�$��"��*�o���d�5��9�o�Y�s�C���!�A�$��"��*�o���s�O���s�O������ ����� ����A�#����A�#����A�!��{�m�B�&�i��F���!�A�$��"��*�o���{�m�B�&�i��F���!�A�$��"��*�o���s�O���s�O������ ����� ����A�#����A�#����A�!rcc��[[[S55/SQSS9n[[[S55/SQSS9n[U5n[U5nUR	X15 UR	XB5 URX25 URXA5 URX45 [[[S55/SQSS9n[[[S55/SQSS9n[U5n[U5nUR	X15 UR	XB5 URX25 URXA5 URX45 g)Nr
)rr_r#rrr)r�rr#z@ir�r�s     rA�+test_memoryview_compare_multidim_zero_shape�>TestBufferProtocol.test_memoryview_compare_multidim_zero_shapeks���d�5��9�o�Y�s�C���d�5��9�o�Y�t�D���s�O���s�O������ ����� ����A�#����A�#����A�!��d�5��9�o�Y�s�C���d�5��9�o�Y�t�D���s�O���s�O������ ����� ����A�#����A�#����A�!rcc��[S/S-/SQSS9n[S//SQ/SQSS9n[U5n[U5nURX15 URXB5 URX25 URXA5 URX45 URUR5UR55 [S	/S
-SS/S
S9n[S	/SS/SS/SS9n[U5n[U5nURX15 URXB5 URX25 URXA5 URX45 g)Nr�r)r9r�r9r�rrrUrr�rrrr#r�z=lQrz<lQ)rrTrxrUr�s     rA�-test_memoryview_compare_multidim_zero_strides�@TestBufferProtocol.test_memoryview_compare_multidim_zero_strides�s*���s�e�B�h�i��=���s�e�9�i��L���s�O���s�O������ ����� ����� ����� �������������Q�X�X�Z�0��v�h�r�k�!�Q���>���v�h�q�!�f�q�!�f�U�K���s�O���s�O������ ����� ����� ����� �����rcc��[[[S55SS/SS9nUSSS2SSS	24n[[[S55SS/S
[S9nUSSS2SSS	24n[	U5n[	U5nURXR5 URXd5 UR
XT5 UR
Xb5 UR
XV5 [S/S-SS/S
[S9nSUSS'USSS2SSS	24n[S/S-SS/S[[-S9nSUSS'USSS2SSS	24n[	U5n[	U5nURXR5 URXd5 URXT5 URXb5 URXV5 [[[S55/SQS[S9nUSS2SSS	24n[[[S55/SQSS9nUSS2SSS	24n[	U5n[	U5nURXR5 URXd5 UR
XT5 UR
Xb5 UR
XV5 [S/S-/SQS[[-S9nUSS2SSS	24n[S/S-/SQSS9nUSS2SSS	24n[	U5n[	U5nURXR5 URXd5 UR
XT5 UR
Xb5 UR
XV5 [[[S55/SQS[S9nUSS2SSS	24n[[[S55/SQS[S9nUSS2SSS	24n[	U5n[	U5nURXR5 URXd5 URXT5 URXb5 URXV5 [S/S-/SQS[[-S9nSUSSS'USS2SSS	24n[S/S-/SQS[[-S9nSUSSS'USS2SSS	24n[	U5n[	U5nURXR5 URXd5 UR
XT5 UR
Xb5 UR
XV5 [[SS 55n[U/SQ5n[U/SQS![S9n[U/SQS"[[-S9n[	U5n[	U5nURXR5 URXd5 URXV5 S#/S-nS$US%'[U/SQ5n[U/SQS&[S9n[U/SQS'[[-S9n[	U5n[	U5nURXR5 URXd5 URXV5 g)(Nr�r�r9r�rrr_r/r�r�rrqr�r�)r/r�r#r:z>Qqr
r2rr�)r�r��Bbr�r)�hellorcr/�)r_r_r_�5s0sP)ssushircr/r�r8r�r)ssashimisslicedg�����4@)sramensspicygfffff�"@r�z
< 10p 9p dz
> 10p 9p d)
rr�rmr�rTrxrnr#r�r�)	rfr�r�r�r�r�r�r�r�s	         rA�+test_memoryview_compare_multidim_suboffsets�>TestBufferProtocol.test_memoryview_compare_multidim_suboffsets�s����d�5��9�o�a��V�D�A���!�A�b�&�$�B�$�,����d�5��9�o�a��V�C�v�N���!�A�a�%��2��+����s�O���s�O������ ����� ����A�#����A�#����A�!��}�o�b�(��A��u�'�)����A��q�	��!�A�b�&�$�B�$�,����}�o�b�(��A��u�"�;�.�0����A��q�	��!�A�a�%��2��+����s�O���s�O������ ����� ����� ����� �������d�5��9�o�Y�s�"�$���!�A�$��"��*�o���d�5��9�o�Y�s�C���!�A�$��"��*�o���s�O���s�O������ ����� ����A�#����A�#����A�!��|�n�R�'�y��"�;�.�0���!�A�$��"��*�o���|�n�R�'�y��F���!�A�$��"��*�o���s�O���s�O������ ����� ����A�#����A�#����A�!��d�5��9�o�Y�s�&�Q���!�A�$��"��*�o���d�5��9�o�Y�t�6�R���!�A�$��"��*�o���s�O���s�O������ ����� ����� ����� �������)�*�2�-�Y�w�"�;�.�0��)��A��q�	�!���!�A�$��"��*�o���)�*�2�-�Y�w�"�;�.�0��)��A��q�	�!���!�A�$��"��*�o���s�O���s�O������ ����� ����A�#����A�#����A�!��E�#�r�N�#����y�)���d�)�D��G���d�)�C�z�&�?P�Q���s�O���s�O������ ����� ������/�/��2��-��R����y�)���d�)�L��O���d�)�L�&�v�-�/���s�O���s�O������ ����� �����rcc���SGHdn[S/S-/SQUS-S9n[S/S-/SQUS-[[-S9nSUS	S
SSS'[U5n[U5nUR	XB5 UR	XS5 URXE5 URXC5 URXR5 [S/S-/SQUS-S9n[S/S-/SQUS-[[-S9nS
US	S
SSS'[U5n[U5nUR	XB5 UR	XS5 URXE5 URXC5 URXR5 GMg g)N)rGrErFrHr+r�)r_r�r#r#r#rrrrqr/r#r_)r+r)r'�QLH)r/r/r/)rr#r�rTrxrn)rf�	byteorderrar�rMrs      rA�!test_memoryview_compare_not_equal�4TestBufferProtocol.test_memoryview_compare_not_equal!sp��.�I������;�y��}�M�A������;�y��}�)�*�4�6�A� �A�a�D��G�A�J�q�M�!���1�
�A��1�
�A����Q�"����Q�"�����%�����%�����%��.�/��3�;�(���0�A��.�/��3�;�(���k�*�6L�N�A�(�A�a�D��G�A�J�q�M�!���1�
�A��1�
�A����Q�"����Q�"�����%�����%�����%�1.rcc��[R"S/SQ5n[U5nUR5 UR[[U5 UR[UR
S5 UR[UR5 UR[[U5 UR[UR5 UR[UR5 UR[[S[55 UR[URS5 UR[URSS5 SH$nUR[URU5 M& [R"S/SQ5n[U5n[U5nURXV5 UR5 UR!XV5 UR!XQ5 URXU5 g)Nr)g�������?g������@gffffff
@rz1.0 in mrr/)r`r0ryr�r!r�r�r�rYr�r�r�)rRrTr�rzr�rj�__iter__rrUr2r7r8rr�__getattribute__rxrn)rfrMrKr�rr�r�s       rA�test_memoryview_check_released�1TestBufferProtocol.test_memoryview_check_released>sk���K�K��_�-���q�M��	�	�	��	
���*�j�!�4����*�a�f�f�c�2����*�a�j�j�1����*�g�q�1����*�a�h�h�/����*�a�i�i�0����*�d�J���A����*�a�m�m�Q�7����*�a�m�m�Q��:�3�D�
���j�!�*<�*<�d�C�3�
�K�K��_�-��
��]��
��]������ �
�
�
�����B�#����B�"����� rcc��Sn[US/SS9n[U5nURX25 URUR5UR55 [U/S/SS9n[U5nURX25 URUR5UR55 [[	S5Vs/sHoAPM sn/SQS	S9n[U5nURX25 URUR5UR55 [[	S
5Vs/sHoAPM sn/SQSS9n[U5nURX25 URUR5UR55 [
(aW"S
S[
R5nU"SS5n[U5nURUR5[U55 ggs snfs snf)Nr�r�r�rrr/z>hQiLlr�r�z=hQiLlr�)r�r#r#r_r#z<hQiLlc�L�\rSrSrS\R
4S\R
4/rSrg)�;TestBufferProtocol.test_memoryview_tobytes.<locals>.BEPointi�rar�r�Nr�r�rcrAr r��r�rcr r�r)rrTrxr2rmrr"r[)rfr�r]rKrzr r*rMs        rA�test_memoryview_tobytes�*TestBufferProtocol.test_memoryview_tobyteshs���
)��
�Q�q�c�$�
/���r�N��������������b�j�j�l�3�
�a�S���H�
5���r�N��������������b�j�j�l�3�
��r��+��A�a��+�7�8�
L���r�N��������������b�j�j�l�3�
��s��,��A�a��,�K�$�&���r�N��������������b�j�j�l�3��6�
H�&�3�3�
H��C��%�E��5�!�A����Q�Y�Y�[�%��,�7�
��,��
-s�G3�2G8c�~�UR[[0[S5 UR[[S[
S5 [
/SQS/S/S9nUR[[U[
S5 [
SS	S
S9nSH:n[U[U5nURX15 URUS	S5 M< [
SS	S
[S
9nSH:n[U[U5nURX15 URUS	S5 M< SHnnSUS	'[U[
U5nURX15 URUS	S5 SUS	'URUS	S5 URUS	S5 Mp [
S/S/S
[S
9nSHfn[U[U5nUR[URS5 URX15 URUR5/5 Mh [
[[S55/SQS
[S
9nSH?n[U[U5nUR[
U5R5///5 MA [
S/S/S[S
9nSHSn[U[
U5nURX15 URUR5UR55 MU [
/SQS/S[S
9nSHSn[U[
U5nURX15 URUR5UR55 MU [
/SQS/S/[S9nSH�n[U[U5nURX15 URUR5UR55 UR[URSS5 URUSS5 URUSS5 M� USSS2nSH�n[U[U5nURX15 URUR5UR55 UR[URSS5 URUSS5 URUSS5 M� [
[[S55SS/[S9nSHKn[U[
U5nUR[
U5R5UR55 MM UR[[U[
S5 [U[W5nUR[
U5R5UR55 [
[[S55SS/[[-S9nSHKn[U[
U5nUR[
U5R5UR55 MM UR[[U[
S5 [U[U5nUR[
U5R5UR55 [
[[S55SS/[[ -S9nSHlnUR[[U[
U5 [U[U5nUR[
U5R5UR55 Mn [
/SQS/S/S9n[U[S5nUR#UR$5 g)Nror_r�r�r#r�rpr�r�rrrrnrqrrr/rr9r�rr_rr�r�r�r�r9r�)r�rp)rorpr�)rzrVr�r�r��PyBUF_WRITErrxr#rrrUr�rmrr�r�r�r�)rfr]rurKs    rA�test_memoryview_get_contiguous�1TestBufferProtocol.test_memoryview_get_contiguous�s���	
���)�^�R��S�I�	
���+�~�t�[�#�N��Y�q�c�A�3�
7�����+�~�r�;��L��Q�b��
-��$�E��r�:�u�5�A����Q�#����Q�r�U�A�&�%��Q�b��K�
@��$�E��r�:�u�5�A����Q�#����Q�r�U�A�&�%�%�E��B�r�F��r�;��6�A����Q�#����Q�r�U�A�&��A�b�E����Q�r�U�B�'����R��V�R�(�%��a�S���C�{�
C��$�E��r�:�u�5�A����j�!�-�-��;����Q�#����Q�X�X�Z��,�	%��T�%��(�^�9�S�&�(��$�E��r�:�u�5�A����W�Q�Z�.�.�0�2�r�(�;�%�
�a�S���C�{�
C��$�E��r�;��6�A����Q�#����Q�X�X�Z�����5�%�
�Y�q�c�#�[�
I��$�E��r�;��6�A����Q�#����Q�X�X�Z�����5�%��Y�q�c�A�3�k�
J��$�E��r�:�u�5�A����Q�#����Q�X�X�Z�����5����i�����2�>����Q�q�T�1�%����R��U�A�&�
%���"��X��$�E��r�:�u�5�A����Q�#����Q�X�X�Z�����5����i�����2�>����Q�q�T�1�%����R��U�A�&�
%��T�%��)�_�Q��F�+�
F���E��r�;��6�A����W�Q�Z�.�.�0�"�)�)�+�>� �	
���+�~�r�;��L��2�z�5�1��������*�*�,�b�i�i�k�:�
�T�%��)�_�Q��F�&�z�1�3���E��r�;��6�A����W�Q�Z�.�.�0�"�)�)�+�>� �	
���+�~�r�;��L��2�z�5�1��������*�*�,�b�i�i�k�:��T�%��)�_�Q��F�+�f�:L�
M��$�E����k�>�2�{�#�
%��r�:�u�5�A����W�Q�Z�.�.�0�"�)�)�+�>�	%��[���a�S�
9���2�z�3�/��������'rcc�L�[R"S5n[R"S/SQ5n[U5n[R
"U5n[
SU-5nURU5 URUR5U5 [R"S5n[[[S55/SQSS9n[U5n[R
"U5n[
SU-5nURU5 URUR5U5 g)Nrr�r�rr�r�rr)
r;r�rRrT�io�BytesIOr(�readintorxr2rr�rm)rfr&rMrKr,rr]s       rA�test_memoryview_serializing�.TestBufferProtocol.test_memoryview_serializings������s�#���K�K��[�)���q�M���j�j��m���a��f������Q���������a�(����s�#��
�T�%��)�_�G�C�
@���r�N���j�j��m���e�D�j�!�����Q���������a�(rcc�*�[[[S555n[U5nUR	[U5[U55 UR
SSS/S9nUR	[U5[U55 USSS2n[[[S55SSS25nUR	[U5[U55 [[[S55/SQ[S	9n[U5nUR	[U5[U55 [[[S55/SQS9nUSSS
2SS2SSS24n[U5nUR	[U5[U55 [[[S55/SQ[S	9nUSSS
2SS2SSS24n[U5nUR	[U5[U55 [[[S55S/S
S9n[U5n[[[S55S/SS9n[U5nUR	Xq5 UR	[U5[U55 [[[S55/SQSS9n[U5nUR[UR5 [[[SS55/SQSS9n[U5nUR[UR5 [[[S55/SQSS9n[U5nUR[UR5 [[[SS55/SQSS9n[U5nUR[UR5 g)Nr�rr_r9r�r�r
r�r�r#r�)r#r�r_rrrrr�rr(r:rz= Lz< h)
r[r�rmrTrxr�rjrr�r�rzr��__hash__)	rfrrK�mc�mxr]rarMr�s	         rA�test_memoryview_hash�'TestBufferProtocol.test_memoryview_hashs���
�$�u�R�y�/�"���q�M������a��$�q�'�*��V�V�C��!�u�V�
%������b��4��7�+��t��t�W���$�u�R�y�/�$�B�$�'�(������b��4��7�+��T�%��)�_�G�:�
F���r�N������a��$�r�(�+��T�%��)�_�G�
4���s��s�B��"��}����q�M������a��$�q�'�*��T�%��)�_�G�6�
B���s��s�B��"��}����q�M������a��$�q�'�*�
�D��r��O�B�4��<���q�M���D��r��O�B�4��<���q�M�����������a��$�q�'�*��T�%��)�_�G�C�
@���r�N�����*�a�j�j�1�
�T�%��A�,�'�w�s�
C���r�N�����*�a�j�j�1�
�T�%��)�_�G�E�
B���r�N�����*�a�j�j�1�
�T�%��A�,�'�w�u�
E���r�N�����*�a�j�j�1rcc
�,�[/SQ5n[U5n[U5nUR[UR
5 AUR5 [/SQ5n[U5n[U[[S9n[U[[S9nURURU5 UR[UR
5 AAUR5 [/SQ5n[U5n[U5n[U5nUR5 UR[UR
5 AUR5 [/SQ5n[U5n[U5n[U[[S9n[U[[S9nURURU5 UR5 UR[UR
5 AAUR5 [/SQS/[S9n[U5nUR/SQS/S9 [U5n[U5nURUR5UR55 [U5n	URU	R5UR55 URU	R5UR55 UR5 U	R5 UR5 URUR5UR55 AUR5 UR5 Sn
[S	5n[U5nU
"U5 URUS
[S55 SSS5 [[![#S55/S
QSS9n[U[[S9n	[U	[[S9nURURU5 [U5nU
"U5 URUS
SR5/SQ/SQ//5 SSS5 S
[4GH�n[S	5n[U5nA[U[US9n	[U	5nA	[U[US9n[U5n
AU
"U
5 U
"U5 U
"U5 URUS
[S55 URUS[S55 URU
S[S55 A
SSS5 ASSS5 ASSS5 [S	5n[U5nA[U[US9n	[U	5nA	[U[US9n[U5n
AU
"U5 U
"U5 U
"U
5 URUS
[S55 URUS[S55 URU
S[S55 AAA
SSS5 SSS5 SSS5 GM� [S	5nUR[5 [U5n[U5nUS
[S5:H SSS5 SSS5 g!,(df   GN�=f!,(df   GNF=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   N�=f!,(df   N�=f!,(df   GM�=f!,(df   N�=f!,(df   g=f)Nr��r�r"r_r�)r9r�r:r:r9r�r�c�P�[U5nSSS5 g!,(df   g=fr��rT)rr�s  rA�catch22�;TestBufferProtocol.test_memoryview_release.<locals>.catch22�s���A��"�����s��
%r�rr\r�r�rrrr/r�)r_r9r�r]r#r^)r(rTrrzr�r�r��ND_REDIRECTrwr`r�r�rxrUr��ordr�rm)rfrMrKr]r�r�r�r�rar�r�rgr"rr}s               rA�test_memoryview_release�*TestBufferProtocol.test_memoryview_releaseZs>��
�g����q�M��
�Q�Z�����+�q�y�y�1��	�	�	���g����q�M���a�
�[�A���c�-�{�C���
�
�c�g�g�q�!����+�q�y�y�1���	�	�	��
�g���
��]��
��^��
�R�[��
�
�
�����+�r�z�z�2��
�
�
���g���
��]��
��^���b��k�B���c�-�{�C���
�
�c�g�g�r�"�
�
�
�����+�r�z�z�2���
�
�
���W�Q�C�|�
<��
��^��
����A�3��'�
��^���r�N���������R�Y�Y�[�1��r�N���������R�Y�Y�[�1��������R�Y�Y�[�1�
�
�
��	�	�	��
�����������R�Y�Y�[�1��
�
�
��	�	�	��
	�
�f���
��]�b��B�K����R��U�C��I�.��
�D��r��O�7�3�?���A�m�;�?���A�m�;�?���
�
�a�e�e�Q��
��]�a��A�J����Q�q��V�]�]�_�	�9�/E�.F�G��
��%�E��&�!�A��A��"���B�}�E�B����]�b����=��F�A�#�A��"������������(�(��A���D�	�:��(�(��A���D�	�:��(�(��A���D�	�:��'��#��!�$�&�!�A��A��"���B�}�E�B����]�b����=��F�A�#�A��"������������(�(��A���D�	�:��(�(��A���D�	�:��(�(��A���D�	�:���B�'�#���+&�L
�f���
�
�
�{�
+��A��!��Q�Z���!���D�	�!��,�
+�i�]���]��'���#�]�����2'���#�]�����&���,�
+�s��*'Y%�3Y7�"Z-�>Z�A5Z		�	Z�	Z-�?[!�[�7A7Z?	�.[�6[!�+\�7[4�\�%
Y4�7
Z�	
Z
�Z�
Z*�%Z-�-
Z<	�?
[

�	[�
[�[!�!
[1	�4
\	�>\�
\c��[[S5Vs/sHnSU-PM
 snS/SS9n[R"S[S5Vs/sHnSU-PM
 sn5nX#4GHn[U[[S9n[U[[S9n[U5nUR
URU5 UR
URU5 UR
URU5 URXa5 URXd5 URXe5 URUSSUSS5 URUSSUSS5 URUSSUSS5 AAURUSSUSS5 GM! gs snfs snf)Nr�r<rrrr�r/r_)	rrmrRr�r�rTrwr`rx)rfrar]rMr�rgrKs       rA�test_memoryview_redirect�+TestBufferProtocol.test_memoryview_redirect�s^��
�u�R�y�1�y�!�c�A�g�y�1�"��c�
J���K�K��u�R�y�9�y�!�c�A�g�y�9�:����A���-�{�C�A���-�{�C�A��1�
�A��M�M�!�%�%��#��M�M�!�%�%��#��M�M�!�%�%��#����Q�"����Q�"����Q�"����Q�q��V�Q�q��V�,����Q�q��V�Q�q��V�,����Q�q��V�Q�q��V�,��1����Q�q��V�Q�q��V�,�#��2��9s�F�F

c��Sn/SQnUR[[SSS5 [5n[U5nUR	XCSUSSS/S/US9	 [S5HnUR
XEU5 M AA[5n[U5nAA[5n[U[S	9n[U[S	9n[U5nURURU5 URURU5 UR	XvSUSSS/S/US9	 AAAA[5n[U[[S
9n[U[[S
9n[U5nURURU5 URURU5 URURU5 UR	XsSUSSS/S/US9	 AAAA[SS9n[U5nUR	USSUSSS/S/US9	 [S5HnUR
XEU5 M AA[SS9n[U5nAA[SS9n[U[S	9n[U[S	9n[U5nURURS5 URURU5 UR	XvSUSSS/S/US9	 AAAA[SS9n[U[[S
9n[U[[S
9n[U5nURURS5 URURU5 URURU5 UR	XtSUSSS/S/US9	 AAAAg)Nr)rr/r#r_r9r�r:r:r9r�rrr�r/r#r_Tr�rr�r�)�legacy_mode)rzrV�staticarrayrTr�rmrxrr�rwr`r�)rfr>rnrar�rrgrKs        rA�$test_memoryview_from_static_exporter�7TestBufferProtocol.test_memoryview_from_static_exporter�sL����)��	
���)�[�!�Q��:�
�M���q�M�����A��C�$��2�$����	�	��r��A����Q�T�1�%��
�
��M���q�M��
�
��M���A�m�,���A�m�,���q�M���
�
�a�e�e�Q���
�
�a�e�e�Q�����A��C�$��2�$����	�	�
�q�!�Q��M���A�m�;�?���A�m�;�?���q�M���
�
�a�e�e�Q���
�
�a�e�e�Q���
�
�a�e�e�Q�����A��C�$��2�$����	�	�
�q�!�Q�
�D�)���q�M�����A�4��C�$��2�$����	�	��r��A����Q�T�1�%��
�
��D�)���q�M��
�
��D�)���A�m�,���A�m�,���q�M���
�
�a�e�e�T�"��
�
�a�e�e�Q�����A��C�$��2�$����	�	�
�q�!�Q��D�)���A�m�;�?���A�m�;�?���q�M��	
�
�
�a�e�e�T�"��
�
�a�e�e�Q���
�
�a�e�e�Q�����A��C�$��2�$����	�	�
�q�!�Qrcc�l�[/SQS/[[-S9nUR[[
U5 g)Nr�r_r�)rr��ND_GETBUF_UNDEFINEDrzr�rTr�s  rA�#test_memoryview_getbuffer_undefined�6TestBufferProtocol.test_memoryview_getbuffer_undefinedPs,���W�q�c��8K�)K�
L�����+�z�2�6rcc�^�[/SQS/[S9nUR[[U5 g)Nr�r_r�)rr�rzr�rT)rfras  rA�test_issue_7385�"TestBufferProtocol.test_issue_7385Vs$���G�A�3�n�=�����+�z�1�5rcc�z�[S5nUR[5 UR[R
R5 SSS5 UR[5 UR[R
R5 SSS5 g!,(df   NV=f!,(df   g=f)Nr�)r(rz�SystemError�
__buffer__�inspect�BufferFlags�READ�WRITE)rfr`s  rA�'test_bytearray_release_buffer_read_flag�:TestBufferProtocol.test_bytearray_release_buffer_read_flagZsu������
�
�
�{�
+��N�N�7�.�.�3�3�4�,�
�
�
�{�
+��N�N�7�.�.�4�4�5�,�
+�,�
+��
+�
+�s�*B�(*B,�
B)�,
B:c��SH=nUR[R"U5[R"U55 M? g)N)rC�ii�3s)rx�	_testcapi�PyBuffer_SizeFromFormatr;r�)rfr!s  rA�test_pybuffer_size_from_format�1TestBufferProtocol.test_pybuffer_size_from_formatbs5��'�F����Y�>�>�v�F�#�_�_�V�4�
6�'rcc�8�SSKJnJn SnUS-
US-4HJnUR	US9 UR[5 URU5 SSS5 SSS5 ML g![a SnSnNkf=f!,(df   N/=f!,(df   M�=f)Nr)�INT_MIN�INT_MAXr(r�r�r/r�)rr r!�ImportError�subTestrzr�r)rfr r!r`r"s     rA�test_flags_overflow�&TestBufferProtocol.test_flags_overflowis���	"�2�
����k�7�Q�;�/�E����E��*��&�&�}�5��N�N�5�)�6�+�*�0���	"� �G�!�G�	"��6�5��+�*�s3�A%�B
�A9�B
�%A6�5A6�9
B�B
�

B	)rdN�F)^r�r�r�r�rgr�r�r�requires_resourcer�r�r�rrrrrrr"r%r+r/r4r9rBrErNrQrZr^rhrmr{r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr+r4r9r@�
contextlib�contextmanagerrGrXrfrjrzr�r�ignore_warnings�DeprecationWarningr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr
r
r�cpython_onlyrr$r�r�rcrAraras|��1�"'�U�J�X.,�`
���u�%�g<�&�g<�R\=�|� $�
'�3�*=�+)�Z%L�N6�4E�..�`,1�\H�>-�&W7�r<�(D�@!@�F4/�l>�B'0�R3�8<E�|(�I�&;�/�
$�>�2�
0�#7�Jn8�`sQ�j-�$�'�'�L�?�62�p5�q@�f:.�x
���u�%�R0�&�R0�h9�<3�A����I��I�3A�jkI�Z6&�p<?�|-=�^�$�$�.@�A�"�B�"�=!�~F+�P�4�4(�8<�|F�P_"�B"�4�6�B&�:(!�T!8�Fs(�j)�<:2�x~"�@-�0\�|7�6�6�
���6��6�
���*��*rcrac�F�\rSrSrSrSrSrSrSrSr	\
R"\SLS	5S
5r
\
R"\SLS	5S5r\
R"\SLS	5S5r\
R"\SLS	5S
5rSrSrSrSrSrSrSrSrSrSrg)�TestPythonBufferProtocoliyc��"SS5n[U"55nURUR5S5 UR[U"55S5 g)Nc��\rSrSrSrSrg)�5TestPythonBufferProtocol.test_basic.<locals>.MyBufferi{c��[S5$�Nr�r��rfr"s  rAr�@TestPythonBufferProtocol.test_basic.<locals>.MyBuffer.__buffer__|�
��!�(�+�+rcr�N�r�r�r�r�rr�r�rcrA�MyBufferr1{���
,rcr8r�)rTrxr2r[)rfr8rs   rA�
test_basic�#TestPythonBufferProtocol.test_basiczsG��	,�	,���
�
#���������x�0�����x�z�*�H�5rcc��"SS5nUR[[U"55 "SS5nUR[[U"55 "SS5nUR[[U"55 g)Nc��\rSrSrSrSrg)�ETestPythonBufferProtocol.test_bad_buffer_method.<locals>.MustReturnMVi�c��g)Nrar�r4s  rAr�PTestPythonBufferProtocol.test_bad_buffer_method.<locals>.MustReturnMV.__buffer__�s��rcr�Nr7r�rcrA�MustReturnMVr>�s��
rcrAc��\rSrSrSrSrg)�FTestPythonBufferProtocol.test_bad_buffer_method.<locals>.NoBytesEitheri�c��gr3r�r4s  rAr�QTestPythonBufferProtocol.test_bad_buffer_method.<locals>.NoBytesEither.__buffer__�s��rcr�Nr7r�rcrA�
NoBytesEitherrC�s��
 rcrFc��\rSrSrSrSrg)�CTestPythonBufferProtocol.test_bad_buffer_method.<locals>.WrongArityi�c��[S5$r3r�res rAr�NTestPythonBufferProtocol.test_bad_buffer_method.<locals>.WrongArity.__buffer__�r6rcr�Nr7r�rcrA�
WrongArityrH�r9rcrK)rzrVrT)rfrArFrKs    rA�test_bad_buffer_method�/TestPythonBufferProtocol.test_bad_buffer_method�sb��	�	�	
���)�Z���@�	 �	 �	
���)�Z���A�	,�	,�	
���)�Z���>rcc�R�"SS5nU"5nURUR5 [U5nURUR5 UR	UR5S5 SSS5 URUR5 g!,(df   N*=f)Nc�&�\rSrSrSrSrSrSrg)�CTestPythonBufferProtocol.test_release_buffer.<locals>.WhatToReleasei�c�2�SUl[S5Ulg�NFr�)�heldr(�bares rAr��LTestPythonBufferProtocol.test_release_buffer.<locals>.WhatToRelease.__init__�s��!��	�#�H�-��rcc�r�UR(a[S5eSUl[UR5$�Nzalready heldT)rSrVrTrTr4s  rAr�NTestPythonBufferProtocol.test_release_buffer.<locals>.WhatToRelease.__buffer__�s*���9�9�#�N�3�3� ��	�!�$�'�'�*�*rcc��SUlg�NF)rS�rfr&s  rA�__release_buffer__�VTestPythonBufferProtocol.test_release_buffer.<locals>.WhatToRelease.__release_buffer__�s	��!��	rc)rTrSN�r�r�r�r�r�rr\r�r�rcrA�
WhatToReleaserP�s��
.�
+�
"rcr_r��rkrSrTr�rxr2�rfr_�wrrs    rA�test_release_buffer�,TestPythonBufferProtocol.test_release_buffer�sw��	"�	"��_��������!�
��^�r��O�O�B�G�G�$����R�Z�Z�\�8�4��	
������!��^���<B�
B&c�R�"SS5nU"5nURUR5 [U5nURUR5 UR	UR5S5 SSS5 URUR5 g!,(df   N*=f)Nc�&�\rSrSrSrSrSrSrg)�ITestPythonBufferProtocol.test_same_buffer_returned.<locals>.WhatToReleasei�c�@�SUl[S5UlSUlgrR)rSr(rT�
created_mvres rAr��RTestPythonBufferProtocol.test_same_buffer_returned.<locals>.WhatToRelease.__init__�s��!��	�#�H�-���"&��rcc��UR(a[S5eSUl[UR5UlUR$rW)rSrVrTrTrjr4s  rAr�TTestPythonBufferProtocol.test_same_buffer_returned.<locals>.WhatToRelease.__buffer__�s5���9�9�#�N�3�3� ��	�",�T�W�W�"5������&rcc�2�XRLdeSUlgrZ)rjrSr[s  rAr\�\TestPythonBufferProtocol.test_same_buffer_returned.<locals>.WhatToRelease.__release_buffer__�s�����0�0�0�!��	rc)rTrjrSNr^r�rcrAr_rh�s��
'�

'�
"rcr_r�r`ras    rA�test_same_buffer_returned�2TestPythonBufferProtocol.test_same_buffer_returned�sw��	"�	"�"�_��������!�
��^�r��O�O�B�G�G�$����R�Z�Z�\�8�4��	
������!��^�rec��"SS5nU"SS5nU"SS5n[RU[RR5nURUR
5S5 [S5US'URUR
5S5 SSS5 [RU[RR5nURUR
5S5 UR[5 [S	5US'SSS5 URUR
5S5 SSS5 [RU[RR5nURUR
5S5 UR[5 [S5US'SSS5 URUR
5S5 SSS5 UR[5 [RU[RR5 SSS5 [U5nURUR
5S5 UR[5 [S5US'SSS5 URUR
5S5 SSS5 g!,(df   GN"=f!,(df   GN�=f!,(df   GN�=f!,(df   GN:=f!,(df   GN$=f!,(df   N�=f!,(df   N�=f!,(df   g=f)
Nc�$�\rSrSrSSjrSrSrg)�CTestPythonBufferProtocol.test_buffer_flags.<locals>.PossiblyMutablei�Nc�0�[U5UlX lgr�)r(�_data�_mutable)rf�data�mutables   rAr��LTestPythonBufferProtocol.test_buffer_flags.<locals>.PossiblyMutable.__init__�s��&�t�_��
� '�
rcc���U[RR-(a1UR(d[	S5e[UR5$[[UR55$)Nznot mutable)rr�WRITABLErwr
rTrvr[r4s  rAr�NTestPythonBufferProtocol.test_buffer_flags.<locals>.PossiblyMutable.__buffer__�sK���7�.�.�7�7�7��=�=�*�=�9�9�%�d�j�j�1�1�%�e�D�J�J�&7�8�8rc)rvrw)�returnN)r�r�r�r�r�rr�r�rcrA�PossiblyMutablert�s��
(�
9rcrr�TFr_rsxello�h)rT�_from_flagsrrr|rxr2r��SIMPLErzrVr
)rfrry�	immutablers     rA�test_buffer_flags�*TestPythonBufferProtocol.test_buffer_flags�sA��	9�	9�"�(�D�1��#�H�e�4�	�
�
#�
#�G�W�-@�-@�-I�-I�
J�b����R�Z�Z�\�8�4���I�B�q�E����R�Z�Z�\�8�4�K��
#�
#�G�W�-@�-@�-G�-G�
H�B����R�Z�Z�\�8�4��"�"�9�-��D�	��1��.����R�Z�Z�\�8�4�	I�
�
#�
#�I�w�/B�/B�/I�/I�
J�b����R�Z�Z�\�8�4��"�"�9�-��D�	��1��.����R�Z�Z�\�8�4�	K��
�
�|�
,��"�"�9�g�.A�.A�.J�.J�K�-�
�	�
"�b����R�Z�Z�\�8�4��"�"�9�-��D�	��1��.����R�Z�Z�\�8�4�	#�
"�#K�
J��.�-��I�
H��.�-��K�
J��-�
,��.�-��#�
"�s��AJ5�6K�K�(K�36K=�)K+�8(K=�=/L�?6L1�5L �(L1�5
K�
K	�K�
K(�+
K:	�5K=�=
L�
L� 
L.	�*L1�1
L?c�@�[S5nURS5nURUR5S5 UR	U5 UR[5 UR[RS-5 SSS5 g!,(df   g=f)Nr�rr/)	r(rrxr2r\rzr�rZr�)rfrTrs   rA�test_call_builtins�+TestPythonBufferProtocol.test_call_builtins�sl��
�x�
 ��
�]�]�1�
���������x�0�
���b�!�
�
�
�}�
-��M�M�#�+�+��/�*�.�
-�
-�s�##B�
BNzrequires _testcapic��[R"5nURURS5 UR	S5nURU[5 URUR5S5 URURS5 URU5 URURS5 UR[5 UR5 SSS5 UR[5 URU5 SSS5 URURS5 g!,(df   NZ=f!,(df   N<=f)Nrstestr/)r�testBufrx�
referencesr�assertIsInstancerTr2r\rzr�)rfr,rs   rA�
test_c_buffer�&TestPythonBufferProtocol.test_c_buffer�s������!���������+�
�^�^�A�
�����b�*�-��������w�/��������+����r�"��������+�
�
�
�z�
*��J�J�L�+��
�
�z�
*��"�"�2�&�+��������+�+�
*��+�
*�s�D<�E
�<
E
�
Ec���[R"5nUR[UR[
5 UR[UR[5 gr�)rr�rzrrr�r�)rfr,s  rA�test_c_buffer_invalid_flags�4TestPythonBufferProtocol.test_c_buffer_invalid_flagss<�����!�����+�s�~�~�z�B����+�s�~�~�{�Crcc��SnUR[[RUS[5 UR[[RUS[
5 g)Nr�r)rzrr�buffer_fill_infor�r�)rf�sources  rA� test_c_fill_buffer_invalid_flags�9TestPythonBufferProtocol.test_c_fill_buffer_invalid_flagssG�������+�y�'A�'A� �!�Z�	1����+�y�'A�'A� �!�[�	2rcc��Sn[R"US[5nUR[	U5S5 URUR5 SSS5 [R"US[5nUR[	U5S5 URUR5 SSS5 UR[[RUS[5 g!,(df   N�=f!,(df   NK=f)Nr�r/r)rr�r�rxr[r�ryr�rkrzr�)rfr�rKs   rA�(test_c_fill_buffer_readonly_and_writable�ATestPythonBufferProtocol.test_c_fill_buffer_readonly_and_writables�����
�
'�
'���<�
@�A����U�1�X�v�.��O�O�A�J�J�'�A��
'�
'���>�
B�a����U�1�X�v�.����Q�Z�Z�(�C�	
���+�y�'A�'A� �!�^�	5�
A�
@��C�
B�s�7C%�:7C6�%
C3�6
Dc��"SS[5nU"S5n[U5nURUR5S5 g)Nc�(^�\rSrSrU4SjrSrU=r$)�4TestPythonBufferProtocol.test_inheritance.<locals>.Ai!c�">�[TU]U5$r���superr�rfr"rJs  �rAr�?TestPythonBufferProtocol.test_inheritance.<locals>.A.__buffer__"�����w�)�%�0�0rcr��r�r�r�r�rr��
__classcell__�rJs@rArpr�!�
���
1�
1rcrpr��r(rTrxr2)rfrprMrs    rA�test_inheritance�)TestPythonBufferProtocol.test_inheritance s8��	1�	�	1�
�h�K��
��]���������x�0rcc�^�Sm"U4SjS[5nU"S5n[U5nURUR5S5 URTS5 SSS5 URTS5 g!,(df   N!=f)Nrc�8>^�\rSrSrU4SjrUU4SjrSrU=r$)�BTestPythonBufferProtocol.test_inheritance_releasebuffer.<locals>.Bi+c�">�[TU]U5$r�r�r�s  �rAr�MTestPythonBufferProtocol.test_inheritance_releasebuffer.<locals>.B.__buffer__,r�rcc�.>�TS-
m[TU]U5 g)Nr/�r�r\)rf�viewrJ�
rb_call_counts  ��rAr\�UTestPythonBufferProtocol.test_inheritance_releasebuffer.<locals>.B.__release_buffer__.s�����"�
���*�4�0rcr��r�r�r�r�rr\r�r�)rJr�s@�rArr�+s���
1�
1�
1rcrr�r/r�)rfrrrr�s    @rA�test_inheritance_releasebuffer�7TestPythonBufferProtocol.test_inheritance_releasebuffer)sm����
�	1�	�	1�
�h�K��
��]�b����R�Z�Z�\�8�4����]�A�.��	
�����*��]�s�3A7�7
Bc��^^�"SS[5nU"S5n[U5nURUR5S5 SSS5 SmSm"UU4SjS[5nU"S5n[U5nURUR5S5 URTS5 SSS5 URTS5 UR	TS	5 g!,(df   N�=f!,(df   ND=f)
Nc��\rSrSrSrSrg)�JTestPythonBufferProtocol.test_inherit_but_return_something_else.<locals>.Ai:c��[S5$r3r�r4s  rAr�UTestPythonBufferProtocol.test_inherit_but_return_something_else.<locals>.A.__buffer__;r6rcr�Nr7r�rcrArpr�:r9rcrpr�rFc�4>^�\rSrSrSrUUU4SjrSrU=r$)�JTestPythonBufferProtocol.test_inherit_but_return_something_else.<locals>.BiDc��[S5$r3r�r4s  rAr�UTestPythonBufferProtocol.test_inherit_but_return_something_else.<locals>.B.__buffer__Er6rcc�T>�TS-
m[TU]U5 g![a Smgf=f)Nr/T)r�r\r�)rfr�rJr��	rb_raiseds  ���rAr\�]TestPythonBufferProtocol.test_inherit_but_return_something_else.<locals>.B.__release_buffer__Gs3�����"�
�%��G�.�t�4��!�%� $�I�%�s��'�'r�r�)rJr�r�s@��rArr�Ds���
,�
%�
%rcrr/T)r(rTrxr2rw)rfrprMrrrr�r�s      @@rA�&test_inherit_but_return_something_else�?TestPythonBufferProtocol.test_inherit_but_return_something_else9s����	,�	�	,�
�h�K��
��]�b����R�Z�Z�\�8�4���
��	�
	%�
	%�	�
	%�
�h�K��
��]�b����R�Z�Z�\�8�4����]�A�.��	
�����*��
�
�i��&�-�]��$�]�s�!C�83C)�
C&�)
C7c��"SS[5nU"S5n[U5nURUR5S5 SSS5 g!,(df   g=f)Nc�(^�\rSrSrU4SjrSrU=r$)�>TestPythonBufferProtocol.test_override_only_release.<locals>.CiXc�$>�[TU]U5 gr�r�)rfr&rJs  �rAr\�QTestPythonBufferProtocol.test_override_only_release.<locals>.C.__release_buffer__Ys�����*�6�2rcr�)r�r�r�r�r\r�r�r�s@rAr�r�Xs
���
3�
3rcr�r�r�)rfr�rrs    rA�test_override_only_release�3TestPythonBufferProtocol.test_override_only_releaseWsB��	3�	�	3�
�h�K��
��]�b����R�Z�Z�\�8�4��]�]�s�!A
�
Ac�j^^�Sm"UU4SjS[5nU"S5n[U5nTRUR5S5 SSS5 UR	5 TR[5 TR5 SSS5 g!,(df   NM=f!,(df   g=f)Nc�6>^�\rSrSrS\4UUU4SjjrSrU=r$)�@TestPythonBufferProtocol.test_release_saves_reference.<locals>.Cicr&c��>�TR[5 [U5 SSS5 TR[5 URS5 SSS5 TR[5 UR	5 SSS5 TR[5 USS SSS5 TR[5 URS5 SSS5 UmTR
UR5S5 [TU]%U5 g!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   N�=f)Nrr/rr�)
rzr�rTrjr�rrxr2r�r\)r�r&rJrf�smuggled_buffers  ���rAr\�STestPythonBufferProtocol.test_release_saves_reference.<locals>.C.__release_buffer__ds�����&�&�z�2��v�&�3��&�&�z�2��K�K��$�3��&�&�z�2��%�%�'�3��&�&�z�2��2�A�J�3��&�&�z�2��%�%�a�(�3�#)��� � ����!1�8�<���*�6�2�3�2��2�2��2�2��2�2��2�2�s;�D�D�/D.�D?�E�
D�
D+�.
D<�?
E
�
Er�)r�r�r�r�rTr\r�r�)rJrfr�s@��rAr�r�cs���
3�j�
3�
3rcr�r�)r(rTrxr2�clearrzr�)rfr�rrr�s`   @rA�test_release_saves_reference�5TestPythonBufferProtocol.test_release_saves_reference`s������	3�	3�	�	3�"
�h�K��
��]�b����R�Z�Z�\�8�4��	���	�
�
�
�z�
*��#�#�%�+�
*��]��+�
*�s�!B�9B$�
B!�$
B2c��^�[S5m"U4SjS5nU"5n[U5nURUR5S5 SSS5 URURR5S5 UR[5 TR5 SSS5 URR5 TR5 g!,(df   N�=f!,(df   NJ=f)Nr�c�(>�\rSrSrU4SjrSrSrg)�OTestPythonBufferProtocol.test_release_saves_reference_no_subclassing.<locals>.Ci~c�>�[T5$r�r�)rfr"rTs  �rAr�ZTestPythonBufferProtocol.test_release_saves_reference_no_subclassing.<locals>.C.__buffer__s
���!�"�~�%rcc��Xlgr��r&r[s  rAr\�bTestPythonBufferProtocol.test_release_saves_reference_no_subclassing.<locals>.C.__release_buffer__����$�rcr�N�r�r�r�r�rr\r�)rTs�rAr�r�~s
���
&�
%rcr�)	r(rTrxr2r&rzr�r�r�)rfr�rrrTs    @rA�+test_release_saves_reference_no_subclassing�DTestPythonBufferProtocol.test_release_saves_reference_no_subclassing{s����
�x�
 ��	%�	%�
�C��
��]�b����R�Z�Z�\�8�4��������)�)�+�X�6�
�
�
�{�
+��H�H�J�,�	������
���
��]��,�
+�s�!C�C)�
C&�)
C7c�R�"SS5n"SSU[5nU"S5n[U5nURUR5S5 SSS5 "SS5n"S	S
U[5nU"S5n[U5nURUR5S5 SSS5 UR	5 UR[5 URR5 SSS5 g!,(df   N�=f!,(df   Nh=f!,(df   g=f)Nc��\rSrSrSrSrg)�ITestPythonBufferProtocol.test_multiple_inheritance_buffer_last.<locals>.Ai�c��[S5$)N�hello Ar�r4s  rAr�TTestPythonBufferProtocol.test_multiple_inheritance_buffer_last.<locals>.A.__buffer__�s
��!�*�-�-rcr�Nr7r�rcrArpr��s��
.rcrpc�(^�\rSrSrU4SjrSrU=r$)�ITestPythonBufferProtocol.test_multiple_inheritance_buffer_last.<locals>.Bi�c�">�[TU]U5$r�r�r�s  �rAr�TTestPythonBufferProtocol.test_multiple_inheritance_buffer_last.<locals>.B.__buffer__�r�rcr�r�r�s@rArr��r�rcrr�r�c��\rSrSrSrSrg)�PTestPythonBufferProtocol.test_multiple_inheritance_buffer_last.<locals>.Releaseri�c��Xlgr�r�r[s  rAr\�cTestPythonBufferProtocol.test_multiple_inheritance_buffer_last.<locals>.Releaser.__release_buffer__�r�rcr�N)r�r�r�r�r\r�r�rcrA�Releaserr��s��
%rcr�c�(^�\rSrSrU4SjrSrU=r$)�ITestPythonBufferProtocol.test_multiple_inheritance_buffer_last.<locals>.Ci�c�">�[TU]U5$r�r�r�s  �rAr�TTestPythonBufferProtocol.test_multiple_inheritance_buffer_last.<locals>.C.__buffer__�r�rcr�r�r�s@rAr�r��r�rcr�shello C)r(rTrxr2r�rzr�r&�rfrprrrr�r�rs        rA�%test_multiple_inheritance_buffer_last�>TestPythonBufferProtocol.test_multiple_inheritance_buffer_last�s���	.�	.�	1��9�	1�
�h�K��
��]�b����R�Z�Z�\�:�6��	%�	%�	1��)�	1�
�j�M��
��]�b����R�Z�Z�\�:�6��	���	�
�
�
�z�
*�
�H�H����+�
*��]���]��+�
*�s#�!C6�!D�D�6
D�
D�
D&c��"SS5n"SS[U5nU"S5n[U5nURUR5S5 SSS5 "SS5n"SS	[U5nU"S5n[U5nURUR5S5 SSS5 UR	5 URURS5 g!,(df   N�=f!,(df   NL=f)
Nc� �\rSrSrSrSrSrg)�QTestPythonBufferProtocol.test_multiple_inheritance_buffer_last_raising.<locals>.Ai�c��[S5e�Nzshould not be called�r
r4s  rAr�\TestPythonBufferProtocol.test_multiple_inheritance_buffer_last_raising.<locals>.A.__buffer__����"�#9�:�:rcc��[S5er�r�r[s  rAr\�dTestPythonBufferProtocol.test_multiple_inheritance_buffer_last_raising.<locals>.A.__release_buffer__�r�rcr�Nr�r�rcrArpr��s��
;�
;rcrpc�(^�\rSrSrU4SjrSrU=r$)�QTestPythonBufferProtocol.test_multiple_inheritance_buffer_last_raising.<locals>.Bi�c�">�[TU]U5$r�r�r�s  �rAr�\TestPythonBufferProtocol.test_multiple_inheritance_buffer_last_raising.<locals>.B.__buffer__�r�rcr�r�r�s@rArr�r�rcrr�c��\rSrSrSrSrSrg)�XTestPythonBufferProtocol.test_multiple_inheritance_buffer_last_raising.<locals>.Releaseri�Nc��Xlgr�r�r[s  rAr\�kTestPythonBufferProtocol.test_multiple_inheritance_buffer_last_raising.<locals>.Releaser.__release_buffer__�r�rcr�)r�r�r�r�r&r\r�r�rcrAr�r�s���F�
%rcr�c�(^�\rSrSrU4SjrSrU=r$)�QTestPythonBufferProtocol.test_multiple_inheritance_buffer_last_raising.<locals>.Ci�c�">�[TU]U5$r�r�r�s  �rAr�\TestPythonBufferProtocol.test_multiple_inheritance_buffer_last_raising.<locals>.C.__buffer__�r�rcr�r�r�s@rAr�r
�r�rcr�)r(rTrxr2r�rwr&r�s        rA�-test_multiple_inheritance_buffer_last_raising�FTestPythonBufferProtocol.test_multiple_inheritance_buffer_last_raising�s���	;�	;�	1�	�1�	1�
�h�K��
��]�b����R�Z�Z�\�8�4��	%�	%�
	1�	�8�	1�
�h�K��
��]�b����R�Z�Z�\�8�4��	���	��
�
�a�h�h��%�!�]���]�s�!C�!C+�
C(�+
C9c��"SS5n[S5n[U5 UR[5 UR	U"55 SSS5 SSS5 g!,(df   N=f!,(df   g=f)Nc� �\rSrSrSrSrSrg)�JTestPythonBufferProtocol.test_release_buffer_with_exception_set.<locals>.Ai�c�*�[[S55$)Nr9)rTr[r4s  rAr�UTestPythonBufferProtocol.test_release_buffer_with_exception_set.<locals>.A.__buffer__�s��!�%��(�+�+rcc��gr�r�)rfr�s  rAr\�]TestPythonBufferProtocol.test_release_buffer_with_exception_set.<locals>.A.__release_buffer__�s��rcr�Nr�r�rcrArpr�s��
,�
rcrpr9)r(rTrzr�r�)rfrprs   rA�&test_release_buffer_with_exception_set�?TestPythonBufferProtocol.test_release_buffer_with_exception_set�sT��	�	�
�a�L��
��]��"�"�;�/������
�0��]�/�/���]�s"�A0�A�A0�
A-	�)A0�0
A>r�)r�r�r�r�r:rLrcrpr�r��unittest�skipIfrr�r�r�r�r�r�r�r�r�r�r�r
rr�r�rcrAr.r.ys���6�?�&"�,"�2%5�N+��_�_�Y�$�&�(<�=�,�>�,� �_�_�Y�$�&�(<�=�D�>�D�
�_�_�Y�$�&�(<�=�2�>�2��_�_�Y�$�&�(<�=�	5�>�	5�1�+� '�<5�&�6�(�8&�>rcr.�__main__)rNN)r�r7r�)r�r7)rr�r&)r�)lr(r�testr�test.supportrr�	itertoolsrr�randomrrr	�warningsrZrRr��os�decimalr
�	fractionsrr�_testbufferr"rr;r�EnvironmentVarGuard�environ�catch_warningsrSr+r�
SHORT_TEST�NATIVEr<r=�STANDARDrBrZr>�copyr��ARRAYr3�BYTEFMTrtrvrsrbrkror~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr$r-r7r;r=r?rCr�rMrQr^r]rbrc�
skipUnless�TestCaserar.r��main)rs0rA�<module>r0s-�� ���"��+�,�,������(��������	�	&�	&�	(�B�J�	�	 �	 �	"�0�
#�
)���
�
�
���
��q�
��a�
��Q�
���
��q�
��a�
��Q�
���
��q�
��a�
��Q�
���	
��q�	
��a�	
��Q�	
����s���s��	�
����C��!���s����s��	�y��y��z��z��z��z��0��d�7��Q��W��	���.������
��
��s�|��-�c�2����S����[�[�]�
�	���
��	�A�����!�H�
��+�+�-��	�A���:��A�J�
��������
������������
�	����.�0C�D�����5�����5������5������5���
� -����0�(�2�$�&�c�l�D�l��.��2C�1�l�D��%�!�
�
����
�
�
�
�0��C�I��,
�2�<?�4�

��=:�~
�
*�):�V9�;�1�@�B	8� C��
0�%�
	3�!�
�&�
�	
��
��
��J�
�F��H��I�!�N��L�
���V�D�E�	���W�E�F�p9*��*�*�p9*�G�F�p9*�fs\�x�0�0�\�~
�z���M�M�O���sU���G���
��
�F���
��
�F���

#�	"��
)�	(�����K���
���I���<�<�<�
��
��LEs��L9�M�M�"N
�3M8�
M&�M8�N
�"N�/N(�N?�&N?�9M�M�M�M�M#�"M#�&
M5	�0M8�8
N�N
�N
�
N�N�N%�$N%�(N<�;N<

Youez - 2016 - github.com/yon3zu
LinuXploit